2011-05-16 71 views
3

我的代码:onItemClick,意向,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<String>(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); 

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

  • “构造意图(新AdapterView.OnItemClickListener(){},类)是未定义”
  • “的方法startActivity(意向)是未定义的类型新AdapterView.OnItemClickListener(){}”

我是一个Android新手,所以请考虑这一点,但我已经学习了一年的Java。

回答

9

修复

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

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

的错误是因为this您参考OnClickListener。如果您参阅活动的this,问题就解决了。第二个错误是相同的 - 错误的参考。只要删除this,并且startActivity()方法也将在封闭类中搜索。

+0

谢谢,这些错误都没有了。并感谢弗拉基米尔的解释! – 2011-05-16 11:48:21

+0

如果有帮助,尝试upvote并接受答案。点击答案左侧的勾号。 – 2011-05-16 11:48:59

1

试试这个

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

谢谢,贴上这个,它的作品。 :) – 2011-05-16 11:48:51