如何在一个活动中显示多个ListView

时间:2013-03-25 10:03:25

标签: android-layout android-listview

在我的应用程序中,我需要一次显示多个(三个)列表视图。任何人都可以建议我实现这一目标的最佳方式。

提前致谢, 钱德拉。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

如果您在XML文件中创建ListView,则可以像下面这样指定ID属性:android:id="@+id/listView1,为每个ListView提供不同的ID。在Java代码中,您需要扩展Activity并创建三个ListView对象,并将它们指向XML文件中的ID。一旦掌握了ListView,就要为每个ArrayAdapter<String>创建一个数据源和ListView。我更喜欢使用ArrayList<String>而不是简单的String[]简单,因为对我来说,它们更容易使用。下面的工作Java示例适用于单个ListView。使用不同的名称为另外两个ListViews复制变量和对象两次。希望这会有所帮助:

public class MainListActivityExample extends Activity {

    ListView listView1;
    ArrayList<String> lvContents1 = new ArrayList<String>;
    ArrayAdapter<String> lvAdapter1;

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

        // Tell the method which layout file to look at
        setContentView(R.layout.listViewExample_activity);

        // Point the ListView object to the XML item
        listView1 = (ListView) findViewById(R.id.listView1);

        // Create the Adapter with the contents of the ArrayList<String>
        lvAdapter1 = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, lvContents1);

        // Attach the Adapter to the ListView
        listView1.setAdapter(lvAdapter1);

        // Add a couple of items to the contents
        lvContents1.add("Foo");
        lvContents1.add("Bar");

        // Tell the adapter that the contents have changed
        lvAdapter1.notifyDataSetChanged();
}

为了添加另外两个ListView,再创建两个ListView个对象,另外两个ArrayList<String>个对象,再创建两个ArrayAdapter<String>个对象,每个对象都有相应的名称,以便知道哪个属于哪个。然后,您可以按照完全相同的步骤进行初始化。