안드로이드 개발 질문/답변
(글 수 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();
}
}



