Java Android Spinner有时不起作用
我正在开发Android应用程序,其中我正在Spinner和ListView之间玩。 我在微调器中有几个值,当我从微调器中选择值,将其添加到ListView中,然后从微调器中删除它们时,我正在做什么。很明显,它工作正常,但在某些情况下,未触发OnItemSelected。 例如,我在微调器中有四个值Java Android Spinner有时不起作用,java,android,listview,android-listview,android-spinner,Java,Android,Listview,Android Listview,Android Spinner,我正在开发Android应用程序,其中我正在Spinner和ListView之间玩。 我在微调器中有几个值,当我从微调器中选择值,将其添加到ListView中,然后从微调器中删除它们时,我正在做什么。很明显,它工作正常,但在某些情况下,未触发OnItemSelected。 例如,我在微调器中有四个值 - Spinner ListView FirstValue Empty at start S
- Spinner ListView
FirstValue Empty at start
SeccondVlaue
ThirdValue
Forth Value
我已经从微调器中选择了第一个值、事件火和移除的值,并将其添加到ListView中,它工作得非常好。所以现在spinner和listview的情况是
Spinner ListView
FirstValue
SeccondVlaue
ThirdValue
Forth Value
现在,当我再次从微调器中选择SecondValue时,事件没有触发,并且无法从微调器中删除值,而如果我选择了ForthValue,则事件将触发,值将添加到listview中。同样,它也不适用于其他场景。我不知道为什么它不起作用。这是我的活动代码
package com.example.hotel\u finance\u management
导入java.util.ArrayList;
导入java.util.List
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;
public class Add_Budget_Activity extends Activity {
private Spinner spinner1;
public ArrayList<String> Spinner_arraylist;
public ArrayAdapter<String> Spinner_Adapter;
public List<Members> memobject;
int counter=0;
int clickCounter=0;
public ListView list;
public ArrayAdapter<String> List_Adapter;
public ArrayList<String> arrayListView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_budget);
list = (ListView) findViewById(R.id.add_budget_list);
spinner1 = (Spinner) findViewById(R.id.spinner1);
Spinner_arraylist = new ArrayList<String>();
arrayListView = new ArrayList<String>();
memobject=Members.listAll(Members.class);
Spinner_arraylist.add("Select your Value");
for(int i=0;i<memobject.size();i++)
{
Spinner_arraylist.add(memobject.get(i).getName());
// Toast.makeText(getApplicationContext(), " Name "+memobject.get(i).getName()+" Position = "+i, Toast.LENGTH_SHORT).show();
}
Spinner_Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,Spinner_arraylist);
Spinner_Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(Spinner_Adapter);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), "Listener is fire",Toast.LENGTH_SHORT).show();
if(!(counter==0))
{
Toast.makeText(getApplicationContext(), "Selected Name is ="+spinner1.getSelectedItem().toString(),Toast.LENGTH_SHORT).show();
// Toast.makeText(getApplicationContext(), "Seleected Name is ="+memobject.get(position-1).getName(), Toast.LENGTH_SHORT).show();
arrayListView.add(spinner1.getSelectedItem().toString());
list.setAdapter(List_Adapter);
Spinner_arraylist.remove(spinner1.getSelectedItem().toString());
}
counter=1;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
List_Adapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1, arrayListView)
{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView text = (TextView) view.findViewById(android.R.id.text1);
text.setTextColor(Color.BLACK);
return view;
}
};
}
}
在删除或添加活动适配器下面的ArrayList元素后,需要调用myAdapter.notifyDataSetChanged