0

このようなプログラムを作成する方法: MainActivity には、プログラムに TabsActivity を開くボタンがあります。TabsActivity には 3 つのタブがあり、各タブ (フラグメント) にはリストがあります。

いくつかのチュートリアルに従ってこれを実行しようとしましたが、成功しませんでした。Context オブジェクトを必要とする BaseAdapter クラスの関数にフラグメント (タブ) を渡すのに問題がありました。

BaseAdapter クラス:

public class AdapterListView extends BaseAdapter
{ ... }

BaseAdapter クラスの関数 (コンストラクタ) :

public AdapterListView(Context context, ArrayList<ItemListView> itens)
{ ... }

フラグメント クラス:

public class FristTabFragment extends Fragment implements OnItemClickListener
{ ... }

フラグメントで関数を使用する:

private AdapterListView adapterListView;
adapterListView = new AdapterListView(this, itens);

コンパイラ (Eclipse) は、FirstTabFragment を引数として受け入れるコンストラクター AdapterListView が未定義であると述べています。AdapterListView コンストラクターには Context が必要です。

4

1 に答える 1

0

Fragment を含むアクティビティをコンストラクターに渡す必要があります。getActivity()の代わりにFragment のメソッドを使用しthisます。

于 2013-11-15T01:04:56.237 に答える