2012-08-13 58 views
0

這是我的類,它是列表視圖中的人口項目,事情順利,onItemClick方法在單擊listitem時執行,但是當我從那裏傳遞一個intent時,它不會傳遞意圖,plz幫助我。從擴展ListView的類傳入意圖

public class VideosListView extends ListView implements android.widget.AdapterView.OnItemClickListener { 

private List<Video> videos; 
private VideoClickListener videoClickListener; 
MainActivity ma; 
private Context mcontext; 

public VideosListView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
} 

public VideosListView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

public VideosListView(Context context) { 
    super(context); 
    mcontext=context; 
} 

public void setVideos(List<Video> videos){ 
    this.videos = videos; 
    VideosAdapter adapter = new VideosAdapter(getContext(), videos); 
    setAdapter(adapter); 
    // When the videos are set we also set an item click listener to the list 
    // this will callback to our custom list whenever an item it pressed 
    // it will tell us what position in the list is pressed 
    setOnItemClickListener(this); 
} 

// Calling this method sets a listener to the list 
// Whatever class is passed in will be notified when the list is pressed 
// (The class that is passed in just has to 'implement VideoClickListener' 
// meaning is has the methods available we want to call) 
public void setOnVideoClickListener(VideoClickListener l) { 
    videoClickListener = l; 

} 

@Override 
public void setAdapter(ListAdapter adapter) 
{ 
    super.setAdapter(adapter); 
} 

// When we receive a notification that a list item was pressed 
// we check to see if a video listener has been set 
// if it has we can then tell the listener 'hey a video has just been clicked' also passing the video 
@Override 
public void onItemClick(AdapterView<?> adapter, View v, int position, long id) 
{ 
    Intent intent = new Intent(mcontext,AnVideoView.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    mcontext.startActivity(intent); 

    Log.i("VideoListView", "I am Clicked"); 
    if(videoClickListener != null) 
    { 
     videoClickListener.onVideoClicked(videos.get(position)); 
     Log.d("My Position ","position is" + position); 
    } 

這是onItemClick()我想傳遞給活動課,如何做到這一點感謝名單幫助

+0

是onItemClick()工作的罰款? – 2012-08-13 06:44:10

+0

對阿其工作很好,我已經在日誌文件中打印了一些東西,並且它正在準確打印 – Pranav 2012-08-13 08:57:34

回答

0

試試這個我classsnow ... 它會幫助你。

Activity activity; 

    public VideosListView(Activity activity) { 
     super(context); 
     this.activity=activity; 
    } 


    @Override 
    public void onItemClick(AdapterView<?> adapter, View v, int position, long id) 
    { 
     Intent intent = new Intent(activity,AnVideoView.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     activity.startActivity(intent); 

     Log.i("VideoListView", "I am Clicked"); 
     if(videoClickListener != null) 
     { 
      videoClickListener.onVideoClicked(videos.get(position)); 
      Log.d("My Position ","position is" + position); 
     } 
+0

@pranav如果有任何問題對您有幫助,那麼將該問題標記爲已接受。它在回答問題方面很重要。因爲在此基礎上你會得到迴應。 – 2012-08-13 08:32:01

0
在onItemClick(

(適配器視圖適配器,視圖V,INT位置,長ID) 我創建延伸BaseAdapter一個構造器的類,然後從那裏,我們可以很容易地通過我們的意圖......這爲我工作,反正thaks幫助我很多球員

我們可以通過在構造器的位置,做任何我們想選擇的項目做。