예를 들어.... A =>  B => C => D 에서.... 다시 C로 되돌아가면 B를 처음부터 실행하지 않더군요...

 

A =>  B => C => D 에서 (현재 D) back키 누르면 C로 가지지만 C를 처음부터 실행하진 않아요~ㅡㅡ

 

원래 이런건가요? 아니면 제가 잘못 짠 건가요....

꼭 C의 처음부터 실행하고 싶은데요....

 확인 부탁드립니다........

 

 

편의상 A라고 치죠..... class Tab_First

 public class Tab_First extends ActivityGroup {
 public static Tab_First FirstTabHGroup;
 private ArrayList<View> history;
 
 Data_Storage data_storage;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  
  data_storage = (Data_Storage)getApplicationContext();
  
  
  history = new ArrayList<View>();
    FirstTabHGroup = this;
    
    Intent intent = new Intent(Tab_First.this, Location.class);
    View view = getLocalActivityManager().startActivity("Location", intent
            .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
    replaceView(view);
   }
   
   // 새로운 Level의 Activity를 추가하는 경우
   public void replaceView(View view) {
    history.add(view);
    setContentView(view);
   }
   
   // Back Key가 눌러졌을 경우에 대한 처리
   public void back() {
    if(history.size() > 0) {
     history.remove(history.size()-1);
     if(history.size() ==  0)
      finish();
     else 
      setContentView(history.get(history.size()-1));
    } 
    else
    {
     finish();
    }
   }
   
   // Back Key에 대한 Event Handler
   @Override
   public void onBackPressed() {
    FirstTabHGroup.back();
    return ;
   }

 

 

 

 

편의상 B.....  class Location

 public class Location extends Activity {
 private ProgressDialog pd; 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.location_button);
    
  Button btn1 = (Button)findViewById(R.id.gyung_gi);      
        
  setIntent(btn1,"경기");      
 }
 
 public void setIntent(Button btn, final String key_word){
     btn.setOnClickListener(new Button.OnClickListener(){
   public void onClick(View v) { 
    Intent intent = new Intent(Location.this, Data_List.class);
    v = Tab_First.FirstTabHGroup.getLocalActivityManager()
                 .startActivity("Data_List", intent).getDecorView();
       
    Tab_First.FirstTabHGroup.replaceView(v);
    
   }
        });
    }
 @Override
 public void onBackPressed() {
  // TODO Auto-generated method stub
  super.onBackPressed();
  Tab_First parent = ((Tab_First)getParent());
    parent.onBackPressed();
 }
 
}

 

 편의상  C    class Data_List

  
public class Data_List extends ListActivity { 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
 
  MyListAdapter adapter = new MyListAdapter(this, data_storage.getM_Name()); //리스트뷰를 어댑터에 적용
  setListAdapter(adapter);  //리스트를 어뎁터에 적용
 }
 @Override
 protected void onListItemClick(ListView l, View v, int position, long id) {
  // TODO Auto-generated method stub
  super.onListItemClick(l, v, position, id);
  Intent intent = new Intent(Data_List.this, Detail.class);
  
  v = Tab_First.FirstTabHGroup.getLocalActivityManager()
               .startActivity("Detail", intent).getDecorView();
     
   Tab_First.FirstTabHGroup.replaceView(v);
 }
 @Override
 public void onBackPressed() {
  // TODO Auto-generated method stub
  super.onBackPressed();
  
  Tab_First parent = ((Tab_First)getParent());
    parent.onBackPressed();  
 }
 
 class MyListAdapter extends ArrayAdapter{ 
  .....
  ....
  ..
  .//이부분은 이미지 GetView하는 부분... 논외라 축약했습니다..
 }
}


 

 

 편의상   D    class Detail

public class Detail extends Activity{
 int position;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.detail);
  Gallery gallery = (Gallery)findViewById(R.id.gallery1);  
  MyListAdapter my = new MyListAdapter(this);  
  gallery.setAdapter(my);
  
  gallery.setOnItemClickListener(new OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view,
     int position, long id) {
    // TODO Auto-generated method stub
    
    Toast.makeText(Detail.this, "position " +position, Toast.LENGTH_SHORT).show();
    
    data_storage.setImage_position(position);
    
    Intent intent = new Intent(Detail.this, Detail_Image.class);
    
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
   }
   
  });
 }
 
 
class MyListAdapter extends BaseAdapter{
  
  .....
  ...
  ..//여기도 역시 갤리리의 GetView를 하는부분이라 필요없을꺼 같아서 축약했습니다.
 }
@Override
public void onBackPressed() {
 // TODO Auto-generated method stub
 super.onBackPressed();
 Log.e("Detail", "end");
 Tab_First parent = ((Tab_First)getParent());
   parent.onBackPressed(); 
 }
}