안드로이드 개발 질문/답변
(글 수 45,052)
예를 들어.... 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(); } }