하루종일 구글링을 통해서 TabActivity 때문에 머리가 아파 죽겠습니다. 고수님의 도움이 절실히 필요합니다.
질문은 Tab을 유지하면서 DB에 저장되어 있는 값을 선택으로 가져오는 것입니다.
가능한지 불가능한지 고수님께서 판단해주시고, 가능하다면 어떻게 해야하는지도 알려주셨으면 감사하겠습니다.
먼저
구현 되어 있는 Splite DB 입니다.
다음은 첫 화면으로 CardType에 있는 자료가 리스트로 보이는 장면 입니다.
이렇게 CardType에 있는 정보가 리스트로 잘 나타내고 있습니다.
여기서 부터가 문제 입니다.
위에 보이는 카드 분류 리스트에서 특정 분류를 선택하면....
예를 들어, 위 그림에서 카드 분류 '11111'을 선택 했을 때... 분류 '11111'에 속해 있는 {'766757', '1111'} 두개가 출력되어야 합니다.
이때, 위 그림 처럼 Tab을 유지하면서 Tab 아래 내용만 바뀌었으면 합니다.
하지만 지금 구현한 것은 아래처럼...Tab이 사라지고...그냥 내용만 한 화면으로 출력됩니다.
AcitvityGroup을 사용하라고 하는데...이와 관련책 예제를 찾기가 너무 어렵네요.ㅜㅜ
제발 도와세요..ㅠㅠ
구글링을 통해서 첫 화면에 탭이 보이게는 성공했는데...첫 화면(cardtype.class)과 두번째 화면(cardname.class) 모두 tap을 유지하면서
리스트로 출력되게 할는 방법을 모르겠습니다.
도와 주세요. 간단하게 제가 지금 작성되어 있는 소스도 보이겠습니다.
TabType.java
public class Pointcard_TabType extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
final TabHost tabHost = getTabHost();
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("카드 분류").setContent(new Intent(this, card_Type.class)));
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("분류 설정").setContent(new Intent(this, DbInsert.class)));
}
}
card_Type.java
public class Pointcard_Type extends ListActivity {
private NotesDbAdapter dbAdapter;
private SimpleCursorAdapter mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dbAdapter = new NotesDbAdapter(this);
dbAdapter.open();
//모든 데이터의 커서를 얻어옴
Cursor c = dbAdapter.fetchfield_duplication_Notes();
// Base 클래스에게 Cursor의 라이프사이클을 관리시킴
startManagingCursor(c);
//리스트뷰에 데이터베이스의 저장된 데이터를 연결
String[] from = new String[] {BaseColumns._ID,
NotesDbAdapter.KEY_CARDTYPE,
NotesDbAdapter.KEY_CARDNAME,
};
int[] to = new int[] { R.id._id, R.id.CardType_text, R.id.CardName_text };
mAdapter = new SimpleCursorAdapter(this, R.layout.note_row_cardtype, c, from, to);
setListAdapter(mAdapter);
}
Card_Name.java 은 Card_Type와 거의 동일 합니다. 받아오는 값이 단지 CardName 필드값 입니다.
cardtype.xml 입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ListView
android:id="@android:id/list"
android:choiceMode="singleChoice"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@android:id/empty"
android:text="데이터가 없습니다! 새 카드를 등록하시려면 메뉴 버튼을 누르세요."
android:singleLine="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
정말 도움이 필요합니다. 내일까지 하면...이것만 3일째 잡고 있습니다. 너무 답답합니다.
읽어주셔서 감사합니다.
1. 탭버튼이 안보이게 추가하고 꺼내쓰는 방법
장점이라믄 Activity관리 자체는 상당히 쉽습니다. 그러나 맘대로 다루려고 할때 골치 아플수도 있습니다.
2. ActivityGroup을 사용하는 방법
장점이라면 일단 원하는대로 거의다 쓸수 있습니다. 단점은 좀 많이 알아야 됩니다. 모르면 정말 쓰기 힘듭니다.
답변 감사합니다.
혹시 첫번째로 말씀 하신 내용이... '그냥 탭 버튼을 구현하지 말고...리스트만 나오게 해라' 라는 뜻인가요?
탭버튼을 구현하지 않고...그냥 리스트로 나오게는 구현되어 있습니다.
탭 기능을 추가해서....어떤 화면에서도 쉽게 다른 메뉴로 찾아갈 수 있다록 하려고 하는 것입니다.
버튼을 사용해서 구현을 했는데...버튼의 단점이 화면 전체가 매번 바뀌어서 보기에 많이 허접해 보였습니다.
그래서 탭을 선택하게 된 것입니다.
다른 어플에서 보니까. 탭 메뉴는 그대로 유지되면서 아래쪽 리스트 내용만 변하더라구요.
저도 그렇게 구현하고 싶은데...너무 어렵습니다.ㅠㅠ




전 비슷한일을 리스트뷰아이템xml파일의 뷰들을 gone시키는걸로 처리한(폰으로 보려니 역시 힘드네요 ㅎㅎ)