删除所选项目微调的Android中 [英] Remove Selected Spinner Item In Android
问题描述
-
我在我的活动微调这是从JSON数据设置的项目
当我选择微调的任何项目,并设置成微调,
我已经做了所有的事情这个时候properly.But我想删除
从微调选定的项目,我得到异常E / AndroidRuntime(1022):
java.lang.UnsupportedOperationException和
E / AndroidRuntime(1022):atandroid.widget.ArrayAdapter.remove(ArrayAdapter.java:212)在的code线E / AndroidRuntime(1022):在com.spinnerdemo.SpinDemo $ 1.onItemSelected(SpinDemo.java:102)
下面是我的code.请有人可以帮助我。
在先进的感谢。
公共类SpinDemo延伸活动{ 私人静态字符串strUrl =http://192.168.1.61/jyoti/android_app/all_questions.php;
私人静态字符串TAG_ID =ID;
私人静态字符串TAG_ code =Q_ preFIX
私人静态字符串TAG_ code_ARR =问题; JSONArray jsonArray = NULL;
微调codeSpinner,spinner2;
的EditText edTextSpinnerItem;
的String []项目; 串strEdtext;
串strid,STR code;
ArrayList的<串GT; codeLIST;
公共ArrayAdapter<串GT;适配器; @覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main); codeLIST =新的ArrayList<串GT;();
codeSpinner =(微调)findViewById(R.id.spinner2); JSONParser jParser =新JSONParser();
JSONObject的JSON = jParser.getJSONFromUrl(strUrl);
尝试
{
jsonArray = json.getJSONArray(TAG_ code_ARR); //通过所有联系人循环
最终的String []项目=新的String [jsonArray.length()]; 的for(int i = 0; I< jsonArray.length();我++)
{
JSONObject的C = jsonArray.getJSONObject(I) //存储在变量中的每个JSON项目 strid = c.getString(TAG_ID);
STR code = c.getString(TAG_ code);
项目由[i] = c.getString(TAG_ code);
的System.out.println(你好事件+项目); 适配器=新ArrayAdapter<串GT;(这一点,
android.R.layout.simple_spinner_item,项目);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
codeSpinner.setAdapter(适配器); }
} 赶上(JSONException E){
e.printStackTrace();
}
codeSpinner.setOnItemSelectedListener(新OnItemSelectedListener()
{
@覆盖
公共无效onItemSelected(适配器视图<>为arg0,ARG1查看,
INT POS,长ARG3)
{
// TODO自动生成方法存根 字符串anyvariable =将String.valueOf(codeSpinner.getSelectedItem());
的System.out.println(anyvariable =+ anyvariable);
edTextSpinnerItem =(EditText上)findViewById(R.id.editText_SpinnerItem);
edTextSpinnerItem.setText(anyvariable);
的System.out.println(edTextSpinnerItem+ edTextSpinnerItem);
串T = adapter.getItem(POS)
的System.out.println(获得该项目的位置从适配器=+ T);
adapter.remove(T);
adapter.notifyDataSetChanged();
codeSpinner.setAdapter(适配器);
//mySpinner.setAdapter(m_adapterForSpinner); //adapter.remove((字符串)codeSpinner.getSelectedItem());
//adapter.notifyDataSetChanged();
//System.out.println(\"Item被删除从微调降DWON表); } @覆盖
公共无效onNothingSelected(适配器视图<>为arg0)
{
// TODO自动生成方法存根 }
}); }}
试试这个..
1)给出微调
setadapter
在为
循环
2)如果您需要删除的任何项目。您需要使用的ArrayList
这是最简单的方式。
我的一些变化后发布code。
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main); codeLIST =新的ArrayList<串GT;();
codeSpinner =(微调)findViewById(R.id.spinner2); JSONParser jParser =新JSONParser();
JSONObject的JSON = jParser.getJSONFromUrl(strUrl);
尝试
{
jsonArray = json.getJSONArray(TAG_ code_ARR); //通过所有联系人循环
最终的String []项目=新的String [jsonArray.length()]; 的for(int i = 0; I< jsonArray.length();我++)
{
JSONObject的C = jsonArray.getJSONObject(I) //存储在变量中的每个JSON项目 strid = c.getString(TAG_ID);
STR code = c.getString(TAG_ code);
项目由[i] = c.getString(TAG_ code);
的System.out.println(你好事件+项目);
codeList.add(STR code); }适配器=新ArrayAdapter<串GT;(这一点,
android.R.layout.simple_spinner_item,codeLIST);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
codeSpinner.setAdapter(适配器);
} 赶上(JSONException E){
e.printStackTrace();
}
codeSpinner.setOnItemSelectedListener(新OnItemSelectedListener()
{
@覆盖
公共无效onItemSelected(适配器视图<>为arg0,ARG1查看,
INT POS,长ARG3)
{
// TODO自动生成方法存根 字符串anyvariable =将String.valueOf(codeSpinner.getSelectedItem());
的System.out.println(anyvariable =+ anyvariable);
edTextSpinnerItem =(EditText上)findViewById(R.id.editText_SpinnerItem);
edTextSpinnerItem.setText(anyvariable);
的System.out.println(edTextSpinnerItem+ edTextSpinnerItem);
串T = adapter.getItem(POS)
的System.out.println(获得该项目的位置从适配器=+ T); 对象T2 = adapter.getItem(POS)
Log.v(T2,+ T2);
codeList.remove(T2);
adapter.notifyDataSetChanged();
} @覆盖
公共无效onNothingSelected(适配器视图<>为arg0)
{
// TODO自动生成方法存根 }
}); }
I have spinner in my Activity which is set the item from JSON data and when i select any item from spinner and set into the spinner , and i have done all this things properly.But when i want to remove selected item from spinner i got exception " E/AndroidRuntime(1022): java.lang.UnsupportedOperationException" and "E/AndroidRuntime(1022):atandroid.widget.ArrayAdapter.remove(ArrayAdapter.java:212)"
at the code line of "E/AndroidRuntime(1022):at com.spinnerdemo.SpinDemo$1.onItemSelected(SpinDemo.java:102)
Here is my code.Please can someone help me. Thanks in advanced.
public class SpinDemo extends Activity {
private static String strUrl = "http://192.168.1.61/jyoti/android_app/all_questions.php";
private static String TAG_ID = "id";
private static String TAG_CODE = "q_prefix";
private static String TAG_CODE_ARR = "Questions";
JSONArray jsonArray = null;
Spinner codeSpinner, spinner2;
EditText edTextSpinnerItem;
String[] items;
String strEdtext;
String strid , strcode ;
ArrayList<String> codeList;
public ArrayAdapter<String> adapter ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
codeList = new ArrayList<String>();
codeSpinner = (Spinner) findViewById(R.id.spinner2);
JSONParser jParser = new JSONParser();
JSONObject json = jParser.getJSONFromUrl(strUrl);
try
{
jsonArray = json.getJSONArray(TAG_CODE_ARR);
// looping through All Contacts
final String[] items = new String[jsonArray.length()];
for(int i = 0; i < jsonArray.length(); i++)
{
JSONObject c = jsonArray.getJSONObject(i);
// Storing each json item in variable
strid = c.getString(TAG_ID);
strcode = c.getString(TAG_CODE);
items[i] = c.getString(TAG_CODE);
System.out.println("Hello events " + items);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
codeSpinner.setAdapter(adapter);
}
}
catch (JSONException e) {
e.printStackTrace();
}
codeSpinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int pos, long arg3)
{
// TODO Auto-generated method stub
String anyvariable=String.valueOf(codeSpinner.getSelectedItem());
System.out.println("anyvariable = " + anyvariable);
edTextSpinnerItem=(EditText)findViewById(R.id.editText_SpinnerItem);
edTextSpinnerItem.setText(anyvariable);
System.out.println("edTextSpinnerItem " + edTextSpinnerItem);
String t = adapter.getItem(pos);
System.out.println("Get The Item Position From Adapter = " + t);
adapter.remove(t);
adapter.notifyDataSetChanged();
codeSpinner.setAdapter(adapter);
//mySpinner.setAdapter(m_adapterForSpinner);
//adapter.remove((String)codeSpinner.getSelectedItem());
//adapter.notifyDataSetChanged();
//System.out.println("Item is Removed From The Spinner Drop Dwon List");
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
// TODO Auto-generated method stub
}
});
}
}
Try this..
1) Give spinner
setadapter
after for
loop
2) If you need to remove any item. You need to use ArrayList
it is the easy way.
I Posted code after some changes.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
codeList = new ArrayList<String>();
codeSpinner = (Spinner) findViewById(R.id.spinner2);
JSONParser jParser = new JSONParser();
JSONObject json = jParser.getJSONFromUrl(strUrl);
try
{
jsonArray = json.getJSONArray(TAG_CODE_ARR);
// looping through All Contacts
final String[] items = new String[jsonArray.length()];
for(int i = 0; i < jsonArray.length(); i++)
{
JSONObject c = jsonArray.getJSONObject(i);
// Storing each json item in variable
strid = c.getString(TAG_ID);
strcode = c.getString(TAG_CODE);
items[i] = c.getString(TAG_CODE);
System.out.println("Hello events " + items);
codeList.add(strcode);
}
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,codeList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
codeSpinner.setAdapter(adapter);
}
catch (JSONException e) {
e.printStackTrace();
}
codeSpinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int pos, long arg3)
{
// TODO Auto-generated method stub
String anyvariable=String.valueOf(codeSpinner.getSelectedItem());
System.out.println("anyvariable = " + anyvariable);
edTextSpinnerItem=(EditText)findViewById(R.id.editText_SpinnerItem);
edTextSpinnerItem.setText(anyvariable);
System.out.println("edTextSpinnerItem " + edTextSpinnerItem);
String t = adapter.getItem(pos);
System.out.println("Get The Item Position From Adapter = " + t);
Object t2 = adapter.getItem(pos);
Log.v("t2", ""+t2);
codeList.remove(t2);
adapter.notifyDataSetChanged();
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
// TODO Auto-generated method stub
}
});
}
这篇关于删除所选项目微调的Android中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!