CursorLoader を使用して入力された ListFragment があります。ListFragment にデータが入力されると、OnItemClickListener メソッドを使用して、ユーザーが選択した List Fragment の項目を特定します。どうすればいいですか?私はもう試した:
String item = getListAdapter().getItem(position);
String item = getListAdapter().getItem(position).toString();
と
String item = (String) ((Fragment) getListAdapter().getItem(position)).getString(0);
position は、次のように onClickItemListener メソッドに渡される整数です。
public void onListItemClick(ListView l, View v, int position, long id)
これらはすべて、何らかのタイプのキャスト例外をスローします。私は困惑しています。これは簡単なことのように思えます。参考までに、List Fragment がどのように設定されるかを次に示します。
private SimpleCursorAdapter mAdapter;
private static final String[] PROJECTION = new String[] { "_id", "stitchname" };
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Intent myData = getActivity().getIntent();
Bundle info = myData.getExtras();
String[] dataColumns = { "stitchname" };
int[] viewIDs = { R.id.stitchlist1 };
mAdapter = new SimpleCursorAdapter(getActivity(), R.layout.stitchlist, null, dataColumns, viewIDs, 0);
setListAdapter(mAdapter);
getLoaderManager().initLoader(0, info, (LoaderCallbacks<Cursor>) this);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
String selection = "stitchlevel=?";
String[] selectionArgs = new String[] {args.getString("Level")};
return (Loader<Cursor>) new CursorLoader(getActivity(), STITCHES_URI, PROJECTION, selection, selectionArgs, null);
}
どんな提案でも大歓迎です、ありがとう!