无法通过我的微调器选择中的更改来设置我的Edittext值

时间:2015-11-27 10:21:03

标签: android android-edittext android-spinner

我正在构建一个应用程序,其中我添加了一个微调器,用户应该选择月份,并且相对于月份的变化,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) {

    }

对此有什么想法?...欢迎评论!

1 个答案:

答案 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
   .....

对其他条件也一样。