android - 一个 Activity 中的多个 ListView

标签 android android-listview

对不起,如果我不能说一口流利的英语, 如何在一个扩展 ListActivity 的 Activity 中有多个 Listview,例如

private List<Tour> tours;
ArrayAdapter<Tour> adapter = new ArrayAdapter<Tour>(this, 
                    android.R.layout.simple_list_item_1, tours);
setListAdapter(adapter);

此代码适用于 Activity 中的一个 Listview,Listview 的 id 是 @android:id/list 但我在一个 Activity 中有两个或多个 Lisview 请指导我

最佳答案

您可以使用 ListFragment 代替 ListActivity。

第一个 fragment :

public class FirstListFragment extends ListFragment {

  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    private List<Tour> tours;
    ArrayAdapter<Tour> adapter = new ArrayAdapter<Tour>(this,android.R.layout.simple_list_item_1, tours);
    setListAdapter(adapter);
  }

  @Override
  public void onListItemClick(ListView l, View v, int position, long id) {
    // do something with the data
  }
} 

第二个 fragment :

public class SecondListFragment extends ListFragment {

  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    private List<Tour> tours;
    ArrayAdapter<Tour> adapter = new ArrayAdapter<Tour>(this,android.R.layout.simple_list_item_1, tours);
    setListAdapter(adapter);
  }

  @Override
  public void onListItemClick(ListView l, View v, int position, long id) {
    // do something with the data
  }
} 

现在您应该将 fragment 添加到 Activity 的 xml 文件中的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <fragment android:name="com.your_package.FirstListFragment"
              android:id="@+id/first_fragment"
              android:layout_weight="1"
              android:layout_width="0dp"
              android:layout_height="match_parent" />

    <fragment android:name="com.your_package.SecondListFragment"
              android:id="@+id/second_fragment"
              android:layout_weight="1"
              android:layout_width="0dp"
              android:layout_height="match_parent" />

</LinearLayout>

你在这里找到更多: http://www.vogella.com/tutorials/AndroidListView/article.html http://developer.android.com/training/basics/fragments/creating.html

关于android - 一个 Activity 中的多个 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24669919/

相关文章:

android - 如何有效地显示来自 SQLite 记录的 HashMap 值?

android - Android 中 ListView 中的复合列表项

android - 相机 Android App Listview

android - 收到 SMS 时发送多部分 SMS 并检查是否送达(导致 receive call notallowedexception)

android - 在 Android API < 21 中使用 setImageTintMode

java - android中如何显示已安装的应用程序?

android - 通过蓝牙共享 zip 文件

android - 在 Eclipse 上设置 android 模拟器 - 启动模拟器时出错

android - 自定义 ListView 不会替换 View

android - ListView findViewById 返回 null