0

をデフォルトからに変更する方法はありますListViewか? たとえば、線形レイアウトの下にあると定義されている xml (リスト)のデフォルトをオーバーライドするカスタム リストがあります。デフォルトの android の代わりにこれを使用するようにするにはどうすればよいですか?SherlockListFragmentR.id.listListViewsetListAdapterListViewListView

XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_view_panel"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/toggleLL"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" >

        <ToggleButton
            android:id="@+id/toggle_button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <ToggleButton
            android:id="@+id/toggle_button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <ToggleButton
            android:id="@+id/toggle_button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </LinearLayout>

    <ListView
        android:id="@id/android:list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/toggleLL" />

</RelativeLayout>

断片:

public class ProblemFragment extends SherlockListFragment
{
    private SeparatedListAdapter list;

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        this.getSherlockActivity().setContentView(R.layout.apps_layout);

        list = new SeparatedListAdapter(this.getSherlockActivity(), new Layout(R.layout.separated_list_adapter_two_text, R.id.two_text_title, R.id.two_text_desc));

        setListAdapter(list); //Sets the list to the default list, not the overwritten list specified in the xml
    }
}
4

1 に答える 1

1

レイアウト XML を使用するように変更するだけandroid:id="@android:id/list"です。

ListActivity と ListFragment は id を持つ ListView に依存しておりandroid.R.id.list、これは SDK で公開されています (および を介して XML でアクセスできます@android:id/list)。これらのクラスのいずれかのドキュメントを見ると、独自のレイアウトを使用するには、適切に機能するために ListView にこの ID を指定する必要があることが両方とも言及されています。

于 2013-08-13T15:08:41.187 に答える