안드로이드 개발 질문/답변
(글 수 45,052)
ListActivity를 상속 받지 않고 그냥 Activity를 상속 후 아래와 같이 소스를 작성하였습니다.
실행시
123
no data
---------------------
323
no data
---------------------
23
no data
no data
그냥 Activity 상속으로 데이타가 없으면 empty id를 가진 Textview를 못보여주나요?
java파일
public class ListTestActivity extends Activity {
String[] datasource = {"123","323","23"};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView lv = (ListView)findViewById(R.id.ListView01);
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this,R.layout.main,R.id.TextView03,datasource);
lv.setAdapter(adapter);
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/ListView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ListView>
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
<TextView
android:id="@id/android:empty"
android:text="no data"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
2010.08.10 14:28:36
저렇게 하면 두 개가 나오게 되나요 ? 에공 -,.- 그럼 하나의 TextView 만 적용되게 하고 데이타가 없으면 empty id를 가진 TextView는
어떻게.보여주나요? ListActivity 사용하지 않고용
2010.08.10 17:06:35
헤더뷰를 쓰는 방법도 있긴한데 좀 지저분하고...
차라리 FrameLayout으로 리스트랑 empty 메시지가 찍힐LinearLayout을 둘러싸고
(텍스트 뷰에 찍으실거면 LinearLayout으로 한번 감싸는걸 추천합니다. 가운데 정렬땜시)
데이터가 없으면 앞서 만든 linearLayout.setVisibility(View.Visible),
데이터가 있으면 linearLayout.setVisibility(View.GONE)
이런형태로 짜는게 나을거 같네요
써놓고 보니 listView.setEmptyView 라는 넘이 있군요... 이걸 써도 될듯요
차라리 FrameLayout으로 리스트랑 empty 메시지가 찍힐LinearLayout을 둘러싸고
(텍스트 뷰에 찍으실거면 LinearLayout으로 한번 감싸는걸 추천합니다. 가운데 정렬땜시)
데이터가 없으면 앞서 만든 linearLayout.setVisibility(View.Visible),
데이터가 있으면 linearLayout.setVisibility(View.GONE)
이런형태로 짜는게 나을거 같네요
써놓고 보니 listView.setEmptyView 라는 넘이 있군요... 이걸 써도 될듯요
ListView에서 하나의 아이템당 두개의 TextView를 넣고 싶다는 것인가요?
그렇다면 CustomAdapter를 사용하셔야 할테고..