我正在构建一个应用程序,其中我添加了一个微调器,用户应该选择月份,并且相对于月份的变化,edittext字段也会发生变化。我在我身边制作了一个代码但它没有工作也没有显示任何错误。 我的代码是:
public class NewMemberRegister extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
Spinner spinner4;
EditText e1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_member_register);
spinner4=(Spinner)findViewById(R.id.spinner4);
ArrayAdapter adapter3
=ArrayAdapter.createFromResource(this,R.array.period,android.R.layout.simple_spinner_item);
spinner4.setAdapter(adapter3);
spinner4.setOnItemSelectedListener(this);
e1=(EditText)findViewById(R.id.amount);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String str= parent.getItemAtPosition(position).toString();
e1=(EditText)findViewById(R.id.amount);
if (spinner4.getItemAtPosition(position)==0){
e1.setText(" ");
}else if(spinner4.getItemAtPosition(position)==1){
e1.setText("100");
}else if(spinner4.getItemAtPosition(position)==2){
e1.setText("1500");
}else if(spinner4.getItemAtPosition(position)==3){
e1.setText("3500");
}else if(spinner4.getItemAtPosition(position)==4){
e1.setText("6000");
}else if(spinner4.getItemAtPosition(position)==5){
e1.setText("10000");
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
对此有什么想法?...欢迎评论!
答案 0 :(得分:2)
下面:
if (spinner4.getItemAtPosition(position)==0){
}else
..
导致问题。因为将非Integer
类型与int
值进行比较。
如下所示:
AdapterView.getItemAtPosition(int):方法将项目索引设为int
,但返回Object
类型值而不是int
。
因此,在比较之前,使用Integer.parseInt
获取int
表示从getItemAtPosition
返回的对象:
if (Integer.parseInt(spinner4.getItemAtPosition(position).toString())==0){
e1.setText(" ");
}else
.....
对其他条件也一样。