6

を拡張しないArrayAdapterクラスにを実装したい。FragmentActivity

問題は、ArrayAdapterのコンストラクターの最初のパラメーターに何を渡すかです。

ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(<what place here>,android.R.layout.simple_list_item1,anyarraylist);

今、私は最初のパラメータで何をすべきですか?合格しようとした

getActivity().getApplicationContext()

最初のパラメータで、しかしコードがクラッシュしました。

私を助けてください。

私のlogcat:

03-17 03:33:08.029: E/AndroidRuntime(596): FATAL EXCEPTION: main
03-17 03:33:08.029: E/AndroidRuntime(596): java.lang.NullPointerException
03-17 03:33:08.029: E/AndroidRuntime(596):  at com.search.pages.SearchResults.onCreateView(SearchResults.java:92)
03-17 03:33:08.029: E/AndroidRuntime(596):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:871)
03-17 03:33:08.029: E/AndroidRuntime(596):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1083)
03-17 03:33:08.029: E/AndroidRuntime(596):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:635)
03-17 03:33:08.029: E/AndroidRuntime(596):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1431)
03-17 03:33:08.029: E/AndroidRuntime(596):  at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:420)
03-17 03:33:08.029: E/AndroidRuntime(596):  at android.os.Handler.handleCallback(Handler.java:587)
03-17 03:33:08.029: E/AndroidRuntime(596):  at android.os.Handler.dispatchMessage(Handler.java:92)
03-17 03:33:08.029: E/AndroidRuntime(596):  at android.os.Looper.loop(Looper.java:123)
03-17 03:33:08.029: E/AndroidRuntime(596):  at android.app.ActivityThread.main(ActivityThread.java:4627)
03-17 03:33:08.029: E/AndroidRuntime(596):  at java.lang.reflect.Method.invokeNative(Native Method)
03-17 03:33:08.029: E/AndroidRuntime(596):  at java.lang.reflect.Method.invoke(Method.java:521)
03-17 03:33:08.029: E/AndroidRuntime(596):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-17 03:33:08.029: E/AndroidRuntime(596):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-17 03:33:08.029: E/AndroidRuntime(596):  at dalvik.system.NativeStart.main(Native Method)
4

3 に答える 3

8

今、私は最初のパラメータで何をすべきですか

getActivity()を返します。これは、コンストラクターActivityへの最初のパラメーターとして適切に機能します。から継承します。ArrayAdapterActivityContext

最初のパラメータで「getActivity()。getApplicationContext()」を渡そうとしましたが、コードがクラッシュしました

なぜ電話をかけているのかを正確にgetApplicationContext()理解していない限り、電話をかけないでください。getApplicationContext()

于 2013-03-16T22:25:20.907 に答える
0

答えを得た。問題は、IDでビューを見つけることでした。

getActivity()。findViewById();

View変数を使用してレイアウトを拡張し、そのViewを使用してビューを検索しました。

すなわち

ビューv=inflater.inflate(............)listView listView = v.findViewById(param);

機能した。

助けてくれてありがとう。

于 2013-03-16T23:09:41.867 に答える
0

私は1つ以下を試してみましたが、完全に機能しています

     // In getView
     FragmentD f = new FragmentD();
     FragmentTransaction ft = context.getFragmentManager().beginTransaction();
     ft.replace(R.id.frame_container, f);
     ft.commit();
*

ただし、フラグメントの場合* ArrayAdapterクラス-コンテキストタイプは、以下のようなコンテキストコンテキストではなくアクティビティです。

    public class CListAdapter extends ArrayAdapter<List1> 
    {
        private final Activity context;

        private ArrayList<List1> conlist = null;

        public CListAdapter(Activity context,ArrayList<ConnectorsList> connList) 
        {
            super(context, R.layout.activity_listitem, connList);
            System.out.println("Calling------");
            this.context = context;
            this.conlist = connList;
}
于 2014-03-13T13:05:39.520 に答える