2011-06-29 211 views
0

我有一個圖片庫,每個圖片都是新聞。所以我想單擊一個圖像並打開該圖像的類以顯示關於它的消息。我的代碼是:android imageview onclick監聽器

gallery.setOnItemClickListener(new OnItemClickListener() { 

      public void onItemClick(AdapterView parent, View v, int position, long id) { 
        Intent intent1 = new Intent(this, ResimHaberGoster.class); 
       intent1.putExtra("position", position); 
       startActivityForResult(intent1, position); 

      } 

     }); 

at Intent intent1 = new Intent(this,ResimHaberGoster.class);它給我錯誤,它將這部分更改爲意圖intent1 = new Intent();

那麼我應該如何去一個新的類通過點擊圖庫

THANKS

回答

1

在你的代碼,試圖改變這一點:

Intent intent1 = new Intent(this, ResimHaberGoster.class); 

與此:

Intent intent1 = new Intent(YourActivity.this, ResimHaberGoster.class); 

解釋:

當你通過this到你的意圖,this是實際onItemClickListener實例的引用,而不是y我們的活動。因此,要告訴程序員,您想要傳遞給您的意圖的上下文是您活動的實際實例,您應該使用YourActivity.this

併爲我的英語感到抱歉;

希望它能幫助:)

3

Intent intent1 = new Intent(this, ResimHaberGoster.class);this表示OnItemClickListener對象。相反,你需要活動上下文。說你當前活動的MyActivity,然後代替this使用MyActivity.this在你的意圖構造

+0

作爲此外,您可以通過調用getApplicationContext(提供應用程序上下文),而不是這個(這是活動類中的方法)。對於視圖和適配器,您需要傳遞上下文。 – DArkO

+0

我認爲最好不要使用onClickListener的應用程序上下文,原因與在任何View的構造函數中不使用應用程序上下文相同 – pankajagarwal

1

弗列薩是絕對正確的。您還可以使用getApplicationContext()