フラグメントが作成されるまで取得されないデータをスピナーに挿入しようとしています。Fragmentが既に作成された後にSpinnerでArrayAdapterデータを作成/設定する方法
datesSpinner = (Spinner)rootView.findViewById(R.id.calldatesspinner);
/*
String[] testData = { "Abc", "Def", "Ghi", "Jkl" };
ArrayList<String> xVals = new ArrayList<>();
for (int i = 0; i < testData.length; i++)
xVals.add(testData[i]);
dataAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_dropdown_item, testData);
datesSpinner.setAdapter(dataAdapter);
*/
をしかし、私は、データが取得された後、スピナーにアダプタを設定しようとすると、私はエラーだけ空白スピナーを取得していない:テストデータがOnCreateView内部で動作しますか?私は、テストArrayAdapterをコメントアウト&データ用ArrayAdapterを作成し、それを新しいのArrayListを与えた後、私はOnCreateViewでやったようにそれを設定しよう:
public void setSpinnerAdapter() {
for (int i = 0; i < datesPulled.size(); i++) {
System.out.println("Populating spinner: " + datesPulled.get(i));
}
System.out.println("finished for loop");
dataAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_dropdown_item, datesPulled);
System.out.println("create array adapter");
datesSpinner.setAdapter(dataAdapter);
}
logcatが、私はそこに思っ
04-03 14:18:02.412 9671-9671/? I/System.out: Populating spinner: 2017-05-01
04-03 14:18:02.412 9671-9671/? I/System.out: Populating spinner: 2017-06-01
04-03 14:18:02.412 9671-9671/? I/System.out: Populating spinner: 2017-07-01
04-03 14:18:02.412 9671-9671/? I/System.out: Populating spinner: 2017-08-01
04-03 14:18:02.413 9671-9671/? I/System.out: finished for loop
ですフラグメント化インターフェースへのアクティビティに問題がありましたが、logcatは正常に動作していると伝えます。 &でテストアダプタをクリアしようとしましたが、新しいArrayListでリセットしました。最初のアダプタは残してください。& 2番目のアダプタ、notifyDataSetChanged()などを作成します。私は何らかの理由で新しいArrayAdapterを作成/設定することはできませんが、理由はわかりません。
フラグメントの 'onViewCreated() 'でsetadapter()メソッドを呼び出してください – rafsanahmad007
あなたはuiスレッドでアダプタを設定していますか? –
onViewCreatedを使用すると、ArrayAdapterが作成されたことがわかります。返信ありがとう@ rafsanahmod007 – JC23