2011-07-04 6 views
0

잘 작동하는 비밀번호 생성기 앱을 만들었지 만 비밀번호를 저장할 수 있도록 업데이트하려고합니다. 사용자가 생성 된 암호를보고 탭 중 하나를 저장할 수있는 탭과 저장된 암호가있는 다른 탭이 하나 있습니다. developer.android.com 자습서를 살펴 보았지만 각 탭에 대해 별도의 활동을 수행하는 방법을 좋아하지 않습니다. 나는 탭을 사용하여 XAML 및 C#을 사용하여 WPF 응용 프로그램을 만들었습니다. 여기서는 XAML 코드에서 TabControl 및 TabItem을 사용해야합니다. 이것과 비슷한 것을 할 수 있습니까?Android에서 탭 사용

답변

1

각 탭마다 별도의 활동을 만들 필요는 없습니다. 그러나 각 탭에 대한 레이아웃이 있어야합니다. TabHost, TabWidgetFrameLayout이 필요합니다. TabWidgetFrameLayoutTabHost의 하위 항목이어야하며 특정 ID가 할당되어 있어야합니다. TabWidget의 ID는 android.R.id.tabs이어야합니다. FrameLayout의 ID는 android.R.id.tabcontent이어야합니다. View 또는 Layout (TabHost의 모든 부분)을 표시하려면 FrameLayout에 추가해야합니다. 그렇다면 모든 것을 연결하는 TabSpec을 만들어야합니다. 이건 마치 (프로 그램 적으로) ..

TabHost host = new TabHost(context); 
TabWidget widget = new TabWidget(context); 
widget.setID(android.R.id.tabs); 
FrameLayout frame = new FrameLayout(context); 
frame.setID(android.R.id.tabcontent); 
frame.addView(viewForTab1); 
frame.addView(viewForTab2); 
host.addView(widget); 
host.addView(frame); 
host.setup(); //must be called when defining a tabhost outside of a tabactivity, iirc.. 
TabSpec spec; 
do { 
    spec = host.newTabSpec(uniqueStringReference); 
    spec.setContent(viewOrLayoutForTheTab); 
    spec.otherStuffYouMightWant(); 
    host.addTab(spec); 
} while (you have tabs to add); 
+0

몇 가지 질문이 있습니다. main.xml 파일에 TabHost, TabWidget 및 FrameLayout이 이미있는 경우 새 객체를 만드는 대신 findViewById (R.id.nameOfView)를 사용할 수 없습니까? 그런 다음 TabHost에 프레임이나 위젯 및 프레임에 뷰를 추가해야한다고 생각하지 않습니다. 또한, uniqueStringReference는 무엇입니까? –

+0

늦은 응답에 대해 유감스럽게 생각합니다. findViewById를 사용할 수있을 것이라고 확신합니다. 개인적으로 XML을 많이 사용하지 않았습니다. - 뷰의 값을 사용할 수 있도록 코드를 사용하여 대부분의 작업을 선호합니다. 화면. 그러나 당신이 말하는 것은 아마도 효과가있을 것입니다. 'uniqueStringReference'는, 그것이 유일 할 때 당신이 원하기 만하면되는 것이라고 믿습니다. 당신이 그것에 도착해야하는 경우에 당신이 탭을위한 참고를 위해 당신이 사용하는 무언가 (전망을위한 ID 같이 종류). 적어도, 그것이 그 목적이 무엇인지 믿습니다. 나는 API를 잠시 보지 않았다. –

관련 문제