onItemSelectedListner实现抽象方法

时间:2017-04-28 01:38:51

标签: java android class

我在这个论坛的帮助下成功地协调了下面的编码,但是当我运行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) {

    }
});

}

1 个答案:

答案 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