スピナーのデータセットを更新するには? これは私のコードです:
mCategory = (Spinner) rootView.findViewById(R.id.detail_categoryType);
String[] mCategoryProjection = { DailyTables.TABLE_CATEGORIES_COLUMN_ID, DailyTables.TABLE_CATEGORIES_COLUMN_TITLE };
int[] to = new int[] { android.R.id.text1, android.R.id.text1 };
Cursor mCategoryCursor = getActivity().getContentResolver().query(DailyContentProvider.CATEGORIES_CONTENT_URI, mCategoryProjection, null, null, null);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(getActivity(), android.R.layout.simple_spinner_item, mCategoryCursor, mCategoryProjection, to, 0 );
adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
mCategory.setAdapter(adapter);
mCategory.setOnLongClickListener(new AdapterView.OnLongClickListener() {
public boolean onLongClick(View v) {
Cursor currentItem = (Cursor) mCategory.getSelectedItem();
if( currentItem != null ) {
Log.d("", currentItem.getString(currentItem.getColumnIndexOrThrow(DailyTables.TABLE_CATEGORIES_COLUMN_TITLE)) + " is long clicked");
DialogFragment newFragment = SpinnerEditCategoryDialogFragment.newInstance( currentItem.getInt(currentItem.getColumnIndexOrThrow(DailyTables.TABLE_CATEGORIES_COLUMN_ID)) );
newFragment.show(getActivity().getSupportFragmentManager(), "dialog");
}
((SimpleCursorAdapter) mCategory.getAdapter()).notifyDataSetChanged();
return true;
}
});
スピナーを長押しすると、スピナー内のアイテムの名前を変更するダイアログが開きます。したがって、正しい値が表示されるとよいでしょう。
notifyDataSetChanged()
仕事をしません。どうしたの?