gpt4 book ai didi

android - 如何将项目添加到 Spinner 的 ArrayAdapter?

转载 作者:可可西里 更新时间:2023-11-01 19:04:59 24 4
gpt4 key购买 nike

我有一个 EditText 、一个按钮和一个微调器。单击按钮时,微调器将添加一个新项目,其名称为您在 EditText 中输入的名称。但问题是,我的 adapter.add() 方法似乎不起作用...这是我的代码:

public class Spr extends Activity {
Button bt1;
EditText et;
ArrayAdapter<CharSequence> adapter;
Spinner spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

bt1 = (Button)this.findViewById(R.id.bt1);
et = (EditText)this.findViewById(R.id.et);
spinner = (Spinner)this.findViewById(R.id.spr);

adapter = ArrayAdapter.createFromResource(
this, R.array.planets_array, android.R.layout.simple_spinner_item);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner.setAdapter(adapter);

bt1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
String temp = et.getText().toString();

adapter.add(temp);
adapter.notifyDataSetChanged();
spinner.setAdapter(adapter);

}
});


spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){

@Override
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {

Toast.makeText(parent.getContext(), "The planet is " +
parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();

}

@Override
public void onNothingSelected(AdapterView<?> arg0) {

}});
}

谢谢! ...还在等待

最佳答案

当您创建 ArrayAdapter 时,您还没有为其分配可调整大小的列表,因此当您执行 add() 时,它无法增加它的大小并抛出 UnsupportedOperationException。

尝试这样的事情:

List<CharSequence> planets = new ArrayList<CharSequence>();
adapter = new ArrayAdapter<CharSequence>(context,
R.array.planets_array, planets);
//now you can call adapter.add()

您应该使用列表。使用诸如 CharSequence[] 之类的数组,您将获得相同的 UnsupportedOperationException 异常。

关于android - 如何将项目添加到 Spinner 的 ArrayAdapter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com