类型 new AdapterView.OnItemSelectedListener(){} 必须实现继承的抽象方法错误。Eclipse

4

我是一名Android编程的初学者,最近遇到了一个问题。我正在制作一个简单的下拉列表应用程序。以下是代码。

package net.learn2develop.Basicviews6;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class BasicViews6Activity extends Activity {
String[] presidents;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    presidents =
            getResources().getStringArray(R.array.presidents_array);
    Spinner s1 = (Spinner) findViewById(R.id.spinner1);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, presidents);

    s1.setAdapter(adapter);
    s1.setOnItemSelectedListener(new OnItemSelectedListener()
    {
        @Override
        public void onItemSelected(AdapterView<?> arg0,
                View arg1, int arg2, long arg3)
        {
            int index = arg0.getSelectedItemPosition();
            Toast.makeText(getBaseContext(),
                    "You have selected item : " + presidents[index],
                    Toast.LENGTH_SHORT).show();
        }

        @Override
        public Void onNothingdSelected(AdapterView<?> arg0) { }

    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.basic_views6, menu);
    return true;
}

}

但是它不允许我运行它,因为这些代码行:
        s1.setOnItemSelectedListener(new OnItemSelectedListener()
public Void onNothingdSelected(AdapterView<?> arg0)

出现了以下错误:

类型 new AdapterView.OnItemSelectedListener(){} 必须实现继承的抽象方法 AdapterView.OnItemSelectedListener.onNothingSelected(AdapterView)

能否有人为我解释一下?非常感谢!

3个回答

3

“void”需要小写字母“v”。

public void onNothingdSelected(AdapterView<?> arg0) { }

代替
public Void onNothingdSelected(AdapterView<?> arg0) { }

还有,拼写错误了。onNothingSelected() 没有意义。 - Ahmad
哦,好的,那会有所帮助,但问题仍然存在。 - Caden Ratcliff
哦,是的,没听懂那个 :-) - SimonSays

2

你的方法写成了 onNothingdSelected(),但应该是 onNothingSelected()。请修改一下,你的拼写有误。


啊,我总是犯这些语法错误。非常感谢您的帮助。 - Caden Ratcliff

1
你需要更改

标签中的内容。
s1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接