onItemClick,Intent,startActivity错误

我的代码:

package elf.app; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import elf.app.entity.ELFList; import elf.app.entity.Entry; import elf.app.test.FakeComm; // TODO Kunna skicka att något är färdigt (ett rum är städat). public class RoomListActivity extends ListActivity { private ELFList eList; // private FakeComm fakecomm; private Bundle extras; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.extras = getIntent().getExtras(); eList = new ELFList(); // fakecomm = new FakeComm(); // eList.add(fakecomm.getData()); String[] strArr = {"asd","sdf","dfg"}; eList.add(strArr); String[] str = eList.returnNames(); setListAdapter(new ArrayAdapter(this, R.layout.list_item, str)); ListView lv = getListView(); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position, long id) { Entry e = eList.getEntry(position); String roominfo = e.toString(); Intent intent = new Intent(this, RoomInfoActivity.class); intent.putExtra("entry",roominfo); this.startActivity(intent); // old stuff // String message; // message = eList.getEntryInfo(position); // Toast.makeText(getApplicationContext(), // message, Toast.LENGTH_SHORT).show(); } }); } } 

我在以下几行收到错误:

 Intent intent = new Intent(this, RoomInfoActivity.class); 

 this.startActivity(intent); 

我没有太多线索为什么我会得到这些错误,编辑器中针对这些错误的确切输出是:

  • “构造函数Intent(new AdapterView.OnItemClickListener(){},Class)未定义”
  • “对于类型new AdapterView.OnItemClickListener(){},未定义方法startActivity(Intent)”

我是一个Android新手,所以请考虑到这一点,但我已经研究了Java大约一年。

固定

 Intent intent = new Intent(this, RoomInfoActivity.class); 

 Intent intent = new Intent(RoomListActivity.this, RoomInfoActivity.class); 

该错误是因为您通过this引用OnClickListener。 如果您参考活动的话,问题就解决了。 第二个错误是相同的 – 错误的引用。 只需删除this ,也将在封闭类中搜索startActivity()方法。

试试这个

 Intent intent = new Intent(RoomListActivity.this, RoomInfoActivity.class); intent.putExtra("entry",roominfo); RoomListActivity.this.startActivity(intent);