所以,我试图学习一些基本的android编程,当我试图为编程生成的listview设置onitemclick()方法时遇到了障碍。eclipse给我的错误是:“adapterview类型中的setOnEmClickListener方法(adapterview.onEmClickListener)不适用于参数(new onEmClickListener(){})”。我完全糊涂了。我已经试了好几次清理这个项目了,只是碰巧那里出了问题。我也尝试过this similar question中的建议,但没有成功。不幸的是,这是我发现的唯一一个与我的问题相关的问题,因为大多数与OnEmClickListener有关的问题都没有被正确调用。我已经在建议的代码中查看了这些问题,并试图确保我的代码遵循建议的内容。任何帮助都将不胜感激。下面是令人不快的代码片段:
import java.util.ArrayList;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.AdapterView;
import android.widget.TextView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
public ArrayList<ContactData> data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_list);
data = getContacts(); // creates arraylist for contact data
ArrayList<String> names = new ArrayList<String>();
for (ContactData item: data) {
names.add(item.getName());
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.textview, names);
ListView listView = (ListView) findViewById(R.id.listview1);
listView.setAdapter(adapter);
//listView.setClickable(true);
// set click listener
listView.setOnItemClickListener(new AdapterView.onItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView textView = (TextView) view;
String name = textView.getText().toString();
Toast.makeText(getBaseContext(), name, Toast.LENGTH_SHORT).show();
}
});
}
编辑:我在eclipse上没有找到任何运气,一时兴起,我尝试了google提供的终端工具,并尝试用这种方式构建我的项目。它起作用了,所以eclipse把事情搞砸了。我不知道怎么做,但现在一切都很好。
最佳答案
这是个小错误。换行
listView.setOnItemClickListener(new AdapterView.onItemClickListener() {
到
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
(您错过了ontemclicklistener中的大写字母“o”)