0

ListActivity内からListViewの上にTextViewを表示しようとしていますが、テキストが表示されません。

LayoutInflater inflater = (LayoutInflater)getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View layout = inflater.inflate( R.layout.main, null );
TextView myTextView = (TextView)layout.findViewById( R.id.myTextView );
myTextView.setVisibility( View.VISIBLE );
myTextView.setText( R.string.emptyList );
setContentView( layout );

主なレイアウトは次のとおりです。

<?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"
    >
    <TextView android:id="@+id/myTextView"
        android:paddingLeft="10dp"
        android:paddingTop="10dp"
        android:textSize="16sp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"/>    
    <ListView  
        android:id="@android:id/list"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"/>
</LinearLayout>

リストビューが空の場合に備えて、画面の上部に「空のリスト」の通知を表示したいのですが。

4

3 に答える 3

3

ListView に setEmptyView を使用して、そのように通知しないでください。

<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:layout_width="fill_parent"
    android:layout_height="300dip"
    android:id="@+id/list_view" />
<TextView
    android:id="@+id/empty_list_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="List view is empty"
    android:visibility="gone" />
</LinearLayout>

そして、コードを呼び出します。

ListView listView = (ListView) findViewById( R.id.list_view );
listView.setEmptyView( findViewById( R.id.empty_list_view ) );
listView.setAdapter(yourAdapter);

詳細については、これらを確認してください。

AdapterView での setEmtpyView の正しい使用

http://www.technotalkative.com/android-listview-setemptyview/

于 2012-12-24T22:37:51.403 に答える
1

FrameLayoutの代わりに を使用できます。そうすれば、と のLinearLayout両方が同じレイアウト スペースを共有します(ただし、厳密には必要ではありません)TextViewListView

次に、ListView 空のビューを に設定するmyTextViewと、空のビューの表示または非表示が自動的に処理されます。

于 2012-12-24T22:36:45.860 に答える
0

TextView に関してあなたが何を意味するのかわかりません。アクティビティが読み込まれるときにリストの上に何かを配置しようとしていますか? その場合、LinearLayout のリストの上に追加するとうまくいきます。

参照している「空のリスト」通知を取得するには、使用しているアクティビティが Activity だけでなく ListActivity を拡張していること、およびそれぞれのビューのタイトルが「list」および「empty」であることを確認してください。

<?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/android:list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

<TextView
    android:id="@+id/android:empty"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/empty_user_list"/>

</LinearLayout>
于 2012-12-24T22:41:04.367 に答える