在android中按下按钮时创建一个新的列表视图

时间:2012-08-06 06:12:44

标签: android listview

我是android编程的新手

我的活动中有两个列表视图和两个按钮。如果我按下第一个按钮,将创建一个列表视图并显示在活动中,当单击第二个按钮时,将创建第二个列表视图,并应关闭第一个列表视图。

有谁能建议我怎么做?

提前致谢..

5 个答案:

答案 0 :(得分:1)

简单的选项是在按钮单击时在运行时更改列表上的列表适配器。

on first button click

    list.setAdapter(adapter1);

on second button click 

    list.setAdapter(adapter2);

您还可以使用标签显示两个列表

请参阅此示例

http://joshclemm.com/blog/?p=59

http://www.edumobile.org/android/android-beginner-tutorials/tab-control/

答案 1 :(得分:0)

听起来非常像Tab接口。

这应该很容易

http://developer.android.com/reference/android/app/ActionBar.html#newTab()

那里的文档有一个使用片段的完整实现示例。您可能以前没有使用过片段但不要害怕,它们基本上只是视图。在尝试使列表视图飞来飞去之前,让示例正常工作。

希望这有帮助!

答案 2 :(得分:0)

你应该考虑使用片段。在主活动中使用框架布局。然后根据用户选择动态加载其中一个片段。

case (R.id.button1):
FragmentTransaction fragmentTransaction = fragmentManager
                    .beginTransaction();
fragmentTransaction.replace(R.id.fragment, frag1);
fragmentTransaction.commit();
break;

http://developer.android.com/guide/components/fragments.html&& http://android-developers.blogspot.com/2011/02/android-30-fragments-api.html

答案 3 :(得分:0)

试试这个,

我按下第二个按钮

       firstlistView.setVisibility(1);(1->Invisible state)first listview goes invisible state
       secondlistview.setVisiblity(0);(0->Visible)Ur second listview shown by this code

答案 4 :(得分:0)

如果你想在两个不同的按钮上显示两个列表,你可以只用一个列表和两个不同的列表 ArrayAdapter和更改列表。

示例代码......

将此代码放入xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="List1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/button1"
        android:text="List2" />

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button1" >
    </ListView>

</RelativeLayout>

将此代码放入您的活动

public class MainActivity extends Activity {

    ListView listView1;
    Button list1Button,list2Button;

    ArrayAdapter<String> adapter1,adapter2;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView1 = (ListView)findViewById(R.id.listView1);

        list1Button = (Button)findViewById(R.id.button1);
        list2Button = (Button)findViewById(R.id.button2);

       String[] names1 = {"Android","Iphone","Titenium"};
       String[] names2 = {"java",".net","php"};

       adapter1 = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,names1);
       adapter2 = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,names2);

       listView1.setAdapter(adapter1);

       list1Button.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            listView1.setAdapter(null);

            listView1.setAdapter(adapter1);

        }
    });

       list2Button.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            listView1.setAdapter(null);
            listView1.setAdapter(adapter2);
        }
    });

    }




}

我希望这对你有帮助..