Good day. There is a fragment. In it, the cursor loader. ListView contains several fields from the database. How using the onListItemClick method onListItemClick get the value of a specific field ???

Here is the code:

 package ru.systemtehnolodgi.stav; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.app.ListFragment; import android.app.LoaderManager; import android.app.LoaderManager.LoaderCallbacks; import android.content.CursorLoader; import android.content.Loader; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import android.widget.Toast; public class PlaceholderFragment extends ListFragment implements LoaderCallbacks<Cursor> { android.app.LoaderManager loaderManager; private LoaderManager.LoaderCallbacks<Cursor> mCallbacks; final static Uri CATALOG_URI = Uri.parse("content://ru.htsprovider.htspdata/catalogtable"); static final String CATALOG_NAME = "catalogname"; static final String NAME_STATUS = "nstatus"; public PlaceholderFragment() { } ScannerListCursorAdapter adapter; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { String[] from = new String[] { CATALOG_NAME, NAME_STATUS }; adapter = new ScannerListCursorAdapter(getActivity(), R.layout.item, null, from, null); setListAdapter(adapter); mCallbacks = this; loaderManager = getActivity().getLoaderManager(); loaderManager.initLoader(0, null, mCallbacks); View rootView = inflater.inflate(R.layout.list_fragment_tehnolodgi, container, false); return rootView; } @Override public Loader<Cursor> onCreateLoader(int id, Bundle bndl) { return(new CursorLoader(getActivity(), CATALOG_URI, null, null, null, null)); } @Override public void onLoadFinished(Loader<Cursor> loader, Cursor c) { adapter.swapCursor(c); } @Override public void onLoaderReset(Loader<Cursor> loader) { adapter.swapCursor(null); } @Override public void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Object obj; obj = getListAdapter().getItem(position); Toast.makeText(getActivity(), "position = " + position + " " + obj.toString(), Toast.LENGTH_SHORT).show(); } } 

    1 answer 1

    I do not understand what the problem is. Why not take, for example, the value of a field with an index of 1 like this:

     @Override public void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); String field1=adapter.getCursor().getString(1); } 
    • Thanks, but I already started to be perverted. - alexmx