如何处理多个微调器选定的项目比较?

时间:2016-03-07 04:27:01

标签: java android android-layout android-studio android-spinner

当两个微调器选择的值相等时,我试图让我的应用程序显示文本或图像。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Spinner sp1 =(Spinner)findViewById(R.id.sp1);
        String txtFromSpinner1 = sp1.getSelectedItem().toString();

        Spinner sp2 = (Spinner)findViewById(R.id.sp2);
        String txtFromSpinner2 = sp2.getSelectedItem().toString();

        if (txtFromSpinner1.equals(1)&& txtFromSpinner2.equals(2)){

            TextView textElement = (TextView)findViewById(R.id.txResult);
            textElement.setText("3");

        }
    }
}

3 个答案:

答案 0 :(得分:2)

试试这个:

Spinner sp1 =(Spinner)findViewById(R.id.sp1);
Spinner sp2 = (Spinner)findViewById(R.id.sp2);
TextView textElement = (TextView)findViewById(R.id.txResult);              
Button showResult = (Button)findViewById(R.id.btnShowResult);

showResult.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           String txtFromSpinner1 = sp1.getSelectedItem().toString();
         String txtFromSpinner2 = sp2.getSelectedItem().toString();

         if (txtFromSpinner1.equals("1")&& txtFromSpinner2.equals("2"))
                textElement.setText("3");


        }
    });

答案 1 :(得分:0)

要比较两个微调器选择的值,您应该使用

String spinnerOne = mySpinnerOne.getSelectedItem().toString() ;
String spinnerTwo = mySpinnerTwo.getSelectedItem().toString() ;

由于spinnerOnespinnerTwo都是java strings,您应该使用equals方法来比较它们。

if(spinnerOne.equals(spinnerTwo))

最后,为了处理微调器选择中的更改,每次用户选择新值时,都应使用onItemSelectedListener()

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
        // your code here
    }

    @Override
    public void onNothingSelected(AdapterView<?> parentView) {
        // your code here
    }

});

答案 2 :(得分:0)

txtFromSpinner1.equals(1)无法正常工作,因为您正在将字符串与数字进行比较并返回false,

您需要比较微调器的字符串。

...

txtFromSpinner1.equals(txtFromSpinner2)

或者在文字中使用引号

if (txtFromSpinner1.equals("1")&& txtFromSpinner2.equals("2")){