我在这个论坛的帮助下成功地协调了下面的编码,但是当我运行Android模拟器时,它声明我需要更改公共类Main3Activity以抽象或实现onItemSelectedListner的抽象方法。如果将Main3Activity更改为abstract,则无法实例化,因此假设我需要在onItemSelectedListner中的某处进行更改,但无法解决问题。任何帮助表示赞赏。
public class Main3Activity extends AppCompatActivity implements OnItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
final Spinner spinner = (Spinner) findViewById(R.id.spinner);
final Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
final 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) {
}
});
}
答案 0 :(得分:2)
如果在setOnItemSelectedListener()方法内创建OnItemSelectedListener的新实例,则无需让MainActivity实现该接口(因为您已经在处理它)。
你可以删除 implements OnItemSelectedListener ,你应该好好去。您的类声明将如下所示:
public class Main3Activity extends AppCompatActivity
如果您希望将侦听器作为Activity的一部分,则需要实现Activity内部接口所需的方法。例如:
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// TODO: Do something here
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO: Do something here
}
然后设置监听器:
spinner.setOnItemSelectedListener(this);
有关Java中接口的更多信息,请阅读以下内容:https://www.tutorialspoint.com/java/java_interfaces.htm