web-dev-qa-db-ja.com

ArrayAdapter <>の型引数を推測できません

私はまだカレンダーをいじっていますが、すでにフラグメントの1つに https://github.com/SundeepK/CompactCalendarView を統合しようとしています。エラーが1つだけ残っています。いくつかの調査を行いましたが、他の例ではArrayList <>で問題が発生しました。

サンプルコード:

final ArrayAdapter adapter = new ArrayAdapter<>
            (this,Android.R.layout.simple_list_item_1, mutableBookings);

IDE言う:

Error:(87, 38) error: cannot infer type arguments for ArrayAdapter<>

注:C:...\Uebersicht.Javaは、非推奨のAPIを使用またはオーバーライドします。注:詳細については、-Xlint:deprecationで再コンパイルしてください。

私はすでに再コンパイルしようとしましたが、結果は機能していないようです

Uebersicht.Java:87: error: cannot find symbol
    final ArrayAdapter adapter = 
          new ArrayAdapter<>(this,Android.R.layout.simple_list_item_1, mutableBookings);


Uebersicht.Java:87: error: cannot find symbol 
final ArrayAdapter adapter = 
          new ArrayAdapter<>(this, Android.R.layout.simple_list_item_1, mutableBookings);    


Uebersicht.Java:87: error: package Android.R does not exist
    final ArrayAdapter adapter = 
          new ArrayAdapter<>(this, Android.R.layout.simple_list_item_1, mutableBookings);    

完全なFragmentクラスを必要に応じて投稿することもできますが、それは私のAPIとArrayAdapterが使用しているAPIに関係するものでなければなりませんか?私はただの初心者であることを忘れないでください、私は自分でいくつかのことだけをやろうとしています。

7
Patpatolino

ArrayAdapterのコンストラクターにコンテキストを渡す必要があります。実際にはFragmentクラスで初期化しているため、thisはコンテキストとして有効ではありません。電話してみてください

final ArrayAdapter adapter = new ArrayAdapter<String>(getActivity(), 
                                Android.R.layout.simple_list_item_1,
                                mutableBookings);
17

このためではなく、getApplicationContext()のために、メソッドがアクティビティで直接実行されず、メソッドにアクセスできない場合があります。

    ArrayAdapter adapter = new ArrayAdapter<>(getApplicationContext(), Android.R.layout.simple_list_item_1, mutableBookings);
1
H.Josue

Adapter宣言でtypeを使用してみてください。 typemutableBookingsがありません:

final ArrayAdapter adapter = new ArrayAdapter<String>(this, Android.R.layout.simple_list_item_1, mutableBookings);
1