2011-05-16 46 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