我是android编程的新手
我的活动中有两个列表视图和两个按钮。如果我按下第一个按钮,将创建一个列表视图并在活动中显示,当单击第二个按钮时,将创建第二个列表视图并关闭第一个。
谁能建议我如何做到这一点?
提前致谢..
简单的选择是在运行时单击按钮时更改列表上的列表适配器。
喜欢
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/
如果您想在两个不同的按钮上显示两个列表,您可以只使用一个带有两个不同 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);
}
});
}
}
我希望这可以帮助你..
听起来很像 Tab 界面。所以这应该很容易
http://developer.android.com/reference/android/app/ActionBar.html#newTab ()
那里的文档有一个使用片段的完整实现示例。您可能以前没有使用过片段,但不要害怕,它们基本上只是视图。在尝试让列表视图飞来飞去之前让示例工作。
希望这可以帮助!
您应该考虑使用片段。在您的主要活动中使用框架布局。然后根据用户选择动态加载片段之一。
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
尝试这个,
当我按下第二个按钮时
firstlistView.setVisibility(1);(1->Invisible state)first listview goes invisible state
secondlistview.setVisiblity(0);(0->Visible)Ur second listview shown by this code