Android的 - 更新的微调选择列表视图 [英] Android - Updating list view on spinner selection
问题描述
我尝试更新列表视图,当我在微调中选择一个项目,在code ++工程,但无输出。我不能微调找出bug.On每次点击的项目我想查看其他列表。
微调微调;
字符串路径[] = {笔记本电脑,DesktopPC,片,加载项,游戏};
字符串笔记本电脑[] = {戴尔,惠普,苹果};
ListView控件lstView;
lstView =(ListView控件)findViewById(R.id.listView1);
ArrayAdapter<字符串>适配器=新的ArrayAdapter<字符串> (Category.this,android.R.layout.simple_spinner_item,路径);
微调=(微调)findViewById(R.id.spinner1);
spinner.setAdapter(适配器);
spinner.setOnItemClickListener(新OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图<>为arg0,查看ARG1,
INT ARG2,长ARG3){
// TODO自动生成方法存根
ArrayAdapter<字符串> lstAdapter =新的ArrayAdapter<字符串>(getApplicationContext(),android.R.layout.simple_list_item_1,笔记本电脑);
lstView.setAdapter(lstAdapter);
//lstView.refreshDrawableState();
}
});
使用 OnItemSelectedListener
和使用的ArrayList<字符串>
。为您的适配器使用相同的。将项目添加到ArrayList和调用 notifyDataSetChanged
您的适配器上刷新lsitview。
也没有必要初始化适配器的微调选择侦听器。
修改以下根据您的要求
微调微调;
字符串路径[] = {笔记本电脑,DesktopPC,片,加载项,游戏};
ArrayList的<字符串>名单=新的ArrayList<字符串>();
字符串笔记本电脑[] = {戴尔,惠普,苹果};
ListView控件lstView;
ArrayAdapter<字符串>适配器,listadapter;
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
lstView =(ListView控件)findViewById(R.id.listView1);
的for(int i = 0; I< Laptops.length;我++)
{
list.add(笔记本电脑[I]);
}
适配器=新的ArrayAdapter<字符串> (这一点,android.R.layout.simple_spinner_item,路径);
listadapter =新的ArrayAdapter<字符串> (这一点,android.R.layout.simple_spinner_item,清单);
lstView.setAdapter(listadapter);
微调=(微调)findViewById(R.id.spinner1);
spinner.setAdapter(适配器);
spinner.setOnItemSelectedListener(新OnItemSelectedListener(){
@覆盖
公共无效onItemSelected(适配器视图<>为arg0,查看ARG1,
INT ARG2,长ARG3){
// TODO自动生成方法存根
字符串s = spinner.getItemAtPosition(ARG2)的ToString();
list.add(多个);
listadapter.notifyDataSetChanged();
}
@覆盖
公共无效onNothingSelected(适配器视图<>为arg0){
// TODO自动生成方法存根
}
});
}
I am trying to update a list view, when I select on an item in spinner, the code works but no output is generated. I cannot figure out the bug.On every click on the item in spinner I want to view different list.
Spinner spinner;
String path[] = {"Laptops","DesktopPC","Tablets","Add-Ons","Gaming"};
String Laptops[] = {"Dell","Hp","Apple"};
ListView lstView;
lstView = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String> (Category.this, android.R.layout.simple_spinner_item, path );
spinner = (Spinner) findViewById(R.id.spinner1);
spinner.setAdapter(adapter);
spinner.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
ArrayAdapter<String> lstAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, Laptops);
lstView.setAdapter(lstAdapter);
//lstView.refreshDrawableState();
}
});
Use OnItemSelectedListener
and use a ArrayList<String>
. Use the same for your adapter. Add items to arraylist and call notifyDataSetChanged
on your adapter to refresh lsitview.
Also there is no need to initialize your adapter in the spinner selection listener.
Modify the below according to your requirement
Spinner spinner;
String path[] = {"Laptops","DesktopPC","Tablets","Add-Ons","Gaming"};
ArrayList<String> list = new ArrayList<String>();
String Laptops[] = {"Dell","Hp","Apple"};
ListView lstView;
ArrayAdapter<String> adapter,listadapter;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lstView = (ListView) findViewById(R.id.listView1);
for(int i=0;i<Laptops.length;i++)
{
list.add(Laptops[i]);
}
adapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item,path);
listadapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item,list);
lstView.setAdapter(listadapter);
spinner = (Spinner) findViewById(R.id.spinner1);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
String s = spinner.getItemAtPosition(arg2).toString();
list.add(s);
listadapter.notifyDataSetChanged();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
这篇关于Android的 - 更新的微调选择列表视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!