2015-10-07 68 views
0

我有一個自定義適配器類,它擴展了BaseAdapter。此類使用Inflater填充具有不同日期的GridView。在這個類中,我有一個onClick方法。當點擊任何日期時,它現在會將用戶帶到不同的活動。這部分工作正常。setActivityForResult()在自定義適配器類

我想獲取一些數據返回到我的自定義適配器類中單擊的視圖。有沒有人爲什麼我不能在我的onClick中實現startActivityForResult()方法?我將MainActivity中的上下文傳遞給了自定義適配器類。下圖顯示了唯一可用的方法。謝謝。

enter image description here

+1

那是因爲適配器不能接受結果。這是一項活動的工作。您的活動必須重寫onActivityResult方法。 – XxGoliathusxX

回答

1

ContextActivity類是不一樣的,雖然他們可以在某些情況下,執行類似的功能。只有Activity類有startActivityForResult方法,所以您應該使用對該方法的引用而不是Context

1

我在片段中使用自定義適配器,爲此,我在自定義適配器的構造函數中傳入Fragment對象。所以,在你的情況下,傳遞一個Activity的實例將會起作用。

或者,更清潔的解決方案將是在您的適配器中創建一個接口。像這樣 -

public interface FeedItemClickListener { 
     void onMyItemClick(View view); 
} 

並在您使用適配器的活動中實現此接口。覆蓋它的功能是這樣的 -

@Override 
    public void onMyItemClick(View view) { 
//Do your work here. 
} 

和你很好去。