对此有很多旧答案,但没有一个有帮助,在提出这个问题之前我花了两周的时间进行研究。我通过 strings.xml 创建了 2 个微调器,当用户从每个微调器中选择一个选项时,它会将 textView 更改为特定值,例如3. 以下是我根据网上的示例整理的内容,问题似乎是 .equals 和 setText 返回无法解析方法错误。
如果您能提供任何帮助,我们将不胜感激。
public class Main3Activity extends AppCompatActivity implements OnItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (spinner.equals("Selection 1")&& spinner2.equals("Option 2"))
textView8.setText("3");
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
IntelliJ 答案解决了我的问题,如下所示。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
TextView textView8=(TextView) findViewById(R.id.textView8);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (spinner.getSelectedItem().toString().equals("Selection 1")
&& spinner2.getSelectedItem().toString().equals("Option 2"))
{
textView8.setText("3");
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
最佳答案
您应该添加getSelectedItem().toString()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (spinner.getSelectedItem().toString().equals("Selection 1"))
{
textView8.setText("3");
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (spinner2.getSelectedItem().toString().equals("Option 2"))
{
textView8.setText("3");
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
关于java - 比较 Spinner 值以更改 textView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43629752/