作者yauhh (哟)
看板AndroidDev
标题Re: [问题] 我想问一个有关spinner的问题
时间Tue Apr 3 21:31:53 2012
※ 引述《w999 (Mr.帅)》之铭言:
: 不好意思我又来问问题了
: 我想问一下有办法让我随着选到spinner里面的item
: 而改变listview的内容
Spinner是选单,所以程式只要加上spinner的OnItemSelectedListener,
选到项目时,就根据项目准备不同的列表,塞进ListView. 像以下例子是简单的
文字呈现:
Spinner spinner = (Spinner)findViewById(R.id.spinner);
String[] arr = new String[]{"A", "B"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
HelloWorldActivity.this,
android.R.layout.simple_spinner_item,
arr);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
public void onItemSelected(AdapterView<?> parent, View me, int id,
long position) {
LinearLayout layout = (LinearLayout)me.getParent().getParent();
ListView listview = (ListView)layout.findViewById(
android.R.id.list);
TextView textview = (TextView)me;
ListAdapter adapter = null;
if (textview.getText().equals("A")) {
String[] arrA = new String[]{ "Hello", "world"};
adapter = new ArrayAdapter(HelloWorldActivity.this,
android.R.layout.simple_list_item_1,
arrA);
} else if (textview.getText().equals("B")) {
String[] arrB = new String[]{ "Hello", "Kitty"};
adapter = new ArrayAdapter(HelloWorldActivity.this,
android.R.layout.simple_list_item_1,
arrB);
}
listview.setAdapter(adapter);
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.112.225.130
1F:推 givemepass:这种写法我怎觉得有点不妥 04/03 21:51
2F:推 givemepass:把listview的宣告写在外面会不会比较好一点? 04/03 21:55
3F:→ givemepass:这样adapter应该就可以重复使用了 04/03 21:56
4F:→ yauhh:随便写个例子而已 04/03 22:16
5F:→ yauhh:真的listview或adapter要宣告在哪里,还是看场合,不是什麽都 04/03 22:21
6F:→ yauhh:共用就了事. 换作别的需求,我这个写法可能变成比较好的作法 04/03 22:22
7F:推 w999:谢谢大大详细的回答我今天才发现= = 04/07 11:24
8F:推 w999:但是我有点看不太懂..因为我的程式一开始就给spinner的选项 04/07 12:35
9F:→ w999:设定成中文了 04/07 12:36