안드로이드 개발 질문/답변
(글 수 45,052)
탭을 이용하여 어플을 만들어보고 있습니다.
일반 액티비티는 탭을 유지하면서 불러오는 방법은 알고있는데
Intent my_main = new Intent(this, my_main.class);
my_main.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
View view = mytab.myGroup.getLocalActivityManager()
.startActivity("my_main", my_main)
.getDecorView();
mytab.myGroup.replaceView(view);
listview를 사용하여 각 리스트를 클릭하면 그 내용이될 액티비티를 불러오려고 하는데요...
탭이 유지가 되질않고 그냥 새로운 액티비티를 불러오더라구요...
책을 보면서 하고있지만 책에서도 탭을 유지 시키지 않고 그냥 새로운 액티비티를 불러오는 방법을 썻습니다.
listview에 해당된 adapter에서 인탠트하는 구간이 있는데 이 구간을 잘만 바꿔보면 될거 같지만 생각처럼 안되서
3일째 공황상태에 빠졌습니다..ㅜㅜ
public void detailInfo(int position) {
String rowid = hm.get("rowid[" + position + "]");
Intent intent = new Intent(mContext, mallDetail.class);
intent.putExtra("rowid", rowid);
mContext.startActivity(intent);
}
위 소스는 해당 리스트를 클릭하면 detailInfo매소드를 실행하고
실행될 detailInfo매소드의 내용입니다.
전달받은 position값을 이용하여 데이터에서 rowid값을 가져오고
인탠트를 사용하여 mallList클래스를 불러오고
화면전환이 될때 rowid값을 매개변수로 전달하는 내용입니다.
어떻게 해야 탭을 유지하며 listview의 내용을 볼수 있을까요?




startActivity로 클릭시 Activity를 호출하고계시군요.
탭을 유지하고 탭을 제외한 화면에 다른 Activity를 뿌리시고 싶으신 것 같은데
TabHost를 이용하셔야 하구요.
startActivity보다는 Intent에 호출하고차 하는 class의 SimpleName을 구해오셔서
intent.setClass를 이용하여 진행하시면 될 듯 합니다.
Activity를 호출 시엔 startActivity가 아닌
ArrayList에 View를 add 하시고 그걸 setContentView 하시면 되겠네요.
TabHost에 대한 예제가 많으니 찾아보시길 권장합니다 :)