1
notifyDataSetUpdate変更を呼び出すにはスピナー値を更新されていない)活動の私のスピナーアダプタこれはスピナーを初期化し、アダプタデータを設定する(OnCreate関数で呼び出されたというのが私のスピナー機能です
private void spinnerSetting() {
DataBaseOperations dataBaseOperations = new DataBaseOperations(this);
spinner = (Spinner) findViewById(R.id.volt_spinner_);
categories = dataBaseOperations.getInvertersType();
// Creating adapter for spinner
dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
// Drop down layout style - list view with radio writeNfcBt
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
mkvValue = parent.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
コードのこの作品から、私はボタンをクリックすると、それは私のリスト(カテゴリ)は、スピナーのアダプタにデータを提供する私はnotifyDataSetChange()が私のリスト(カテゴリ)が更新され、新しい値を持っていますが、値
List<Inverters> allData = inverter.getData();
DataBaseOperations dataBaseOperations = new DataBaseOperations(AdminPanelActivity.this);
dataBaseOperations.addInvertersNames(allData);
categories.clear();
//dataAdapter.clear();
categories = dataBaseOperations.getInvertersType();
dataAdapter.notifyDataSetChanged();
spinner.setAdapter(dataAdapter);
を、それがスピナーを更新し、ない働いていない、それは私が新しいデータで再びアダプタをintializeた場合にのみです –
が、私はnotifyDataSetChange()がない理由を知りたいです –
新しい参照を作成するためです。 'dataAdapter = new ArrayAdapter(this、android.R.layout.simple_spinner_item、categories);を実行することもできます。 spinner.setAdapter(dataAdapter); 'データを更新しようとしているとき –