从微调器阵列中检索对象并设置它

时间:2015-05-27 04:17:15

标签: java android arrays string spinner

我尝试从我的微调器数组中检索一个对象并将其设置为某个常量,在这种情况下" EFFECT_AQUA"

我的阵列

String[] spinnerValues = {"Aqua", "Mono", "Blackbird", "Negative"};

当用户点击" Aqua"在微调器中我希望屏幕变为Aqua。

我的微调器被设置并调用

Spinner mySpinner = (Spinner) findViewById(R.id.spinner_show);
mySpinner.setAdapter(new MyAdapter(this,R.layout.custom_spinner,spinnerValues));

但不确定我应该怎样接近。看到许多不同的答案,但没有发现任何工作。

我知道我的开关会出现在这部分

class SpinnerActivity extends Activity implements AdapterView.OnItemSelectedListener {

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

任何帮助都是适当的!!

3 个答案:

答案 0 :(得分:0)

如果要在项目单击时从微调器数组中检索对象,可以使用方法onItemSelected中的position参数轻松完成。

例如: -

class SpinnerActivity extends Activity implements AdapterView.OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
   String itemSelected = spinnerValues[position];
   //Set this to a constant
}

}

现在,如果您选择 Aqua ,则代码会将变量itemSelected设置为 Aqua

我希望这就是你需要的东西

答案 1 :(得分:0)

final Spinner cardStatusSpinner1 = (Spinner)findViewById(R.id.text_interested);
String cardStatusString;
cardStatusSpinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {
        cardStatusString = parent.getItemAtPosition(pos).toString();
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

    }
});

答案 2 :(得分:0)

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

将下面的代码放在首先获取该项目,然后您可以通过采用aqua或任何颜色等值进行操作。

 spinner = (Spinner)findViewById(R.id.spinner1);
spinner.setAdapter(new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_expandable_list_item_1,spinnerValues));
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> parent, View view,
            int position, long id) {
        TextView tv = (TextView)view;
        Toast.makeText(getApplicationContext(), tv.getText().toString(), 5000).show();
        switch(tv.getText().toString()){
        case "Aqua":{
            //change  the color to aqua
            break;
        }
        case " ...":{
            //
            break;
        }
        //.... for all the option
        }
    }