当两个微调器选择的值相等时,我试图让我的应用程序显示文本或图像。
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");
}
}
}
答案 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() ;
由于spinnerOne
和spinnerTwo
都是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")){