2011-01-11 8 views
1

ListViewをカスタマイズしたいListAdapterを使用する単純なListActivityがあります。ここで私はsetListAdapterによって生成されるデフォルトのリストビューを()使用するのではなく、ビューを使用するように指定し、私のonCreateは、次のとおりです。XMLを使用したListViewのカスタマイズ問題

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // set the listview, empty listview 
    setContentView(R.layout.main); 
    getListView().setEmptyView(findViewById(android.R.id.empty)); 

    // set the list properties 
    getListView().setOnCreateContextMenuListener(this); 

    . 
    . 
    . 
    <code snipped> 
    . 
    . 
    . 

    setListAdapter(adapter); 
} 

あなたは私もemptyViewを設定していていることがわかります。ここではXMLファイルmain.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="@id/android:list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fadingEdge="vertical" 
     android:dividerHeight="5dp" /> 
    <TextView 
    android:id="@android:id/empty" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="center" 
     android:singleLine="false" 
     android:text="@string/message_empty_list" /> 
</LinearLayout> 

私の問題は、リストビューは、正しくdividerHeightをかけながら、無視されていることである:それはXMLであるときfadingEdgeディレクティブを。しかし、私はプログラム的fadingEdgeを設定した場合、それが動作する、すなわち:

getListView().setVerticalFadingEdgeEnabled(true); 

リストビューは、具体的fadingEdgeを無視するだろう、なぜ任意のアイデア?この動作につながる可能性がある間違ったことをしていますか?

ありがとうございます!

答えて

0
android:id="@id/android:list" 

はそれがコンパイルなぜ私もよく分からない

android:id="@iandroid:id/list" 

でなければなりません。

これは、listactivitiesにカスタムxmlを使用する方法です。

<FrameLayout 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:layout_width="fill_parent" 
      android:layout_height="fill_parent" /> 
     <TextView 
      android:id="@android:id/empty" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="No data found" 
      android:gravity="center" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 
</FrameLayout> 
+0

私はもともとアンドロイドとしてそれを持っていた:私はそれがあることを期待していたとして、ID /リストが、それはどちらか、その後の作業...私は、検索を行なったし、それを変更することを推奨こちらのページに出くわしていませんでした@ id/android:list ...もちろん、私はそのページを見つけることができません。とにかく、簡単な答えはまだアンドロイドを変更しても動作しないということです。id –

+0

FYI、XMLのFrameLayoutと親ルートコンテナのLinearLayoutを変更しました。結果に変更はなく、まだピックアップされていませんandroid:fadingEdgeプロパティ。 –

+0

リストビューはデフォルトでそれを処理する方法なので、リストビューがフェードエッジ属性をオーバーライドしていると思います。コード内で変更してみてください。 – Falmarri

関連する問題