Android 需要我的片段中listView中的数据库\u id

Android 需要我的片段中listView中的数据库\u id,android,android-listview,android-sqlite,Android,Android Listview,Android Sqlite,出于某种原因,我的长id存储的是行的位置,而不是\u id 我希望获得_id,以便在单击时可以执行其他一些功能 这是我的密码: public class WorkoutsFragment extends Fragment { WorkoutsDatabaseHelper db; SimpleCursorAdapter adapter; ListView listContent; Cursor cursor; private Context mContex

出于某种原因,我的
长id
存储的是行的位置,而不是
\u id

我希望获得_id,以便在单击时可以执行其他一些功能

这是我的密码:

public class WorkoutsFragment extends Fragment {

    WorkoutsDatabaseHelper db;
    SimpleCursorAdapter adapter;
    ListView listContent;
    Cursor cursor;
    private Context mContext;
    WorkoutsAdapter workoutsAdapter;

    public WorkoutsFragment(){}


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        mContext = getActivity();
        db = new WorkoutsDatabaseHelper(mContext);

        View rootView = inflater.inflate(R.layout.activity_workouts, container, false);

        listContent = (ListView) rootView.findViewById(R.id.list);

        // Create the Adapter
        workoutsAdapter = new WorkoutsAdapter(mContext, cursor);

        // Set the adapter to ListView
        listContent.setAdapter(workoutsAdapter);

        listContent.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            String idString;

            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Log.d("Clicked item _id = ", ""+id);
            }
        });
        return rootView;
    }




    private void addItemsToList(){
        Cursor cursor = db.getWorkoutNames();
        Log.d("history.java", "finished Cursor cursor = db.getAllLogs();");
        String[] from = {"_id", "workouts_name"};
        int[] to = {R.id.tv_id, R.id.tv_label};
        adapter = new SimpleCursorAdapter(mContext, R.layout.single_item, cursor, from, to, 0);
        listContent.setAdapter(adapter);

    }

    public void onResume(){
        super.onResume();
        workoutsAdapter = new WorkoutsAdapter(mContext, cursor);
        listContent.setAdapter(workoutsAdapter);

    }

    public void onSaveInstanceState(Bundle savedState) {
        super.onSaveInstanceState(savedState);
    }


}
公共类WorkoutsFragment扩展片段{
WorkoutsDatabaseHelper数据库;
SimpleCursorAdapter适配器;
列表视图列表内容;
光标;
私有上下文;
训练适应者训练适应者;
公共工作片段(){}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
mContext=getActivity();
db=新的WorkoutsDatabaseHelper(mContext);
视图根视图=充气机。充气(R.layout.activity\u训练,容器,错误);
listContent=(ListView)rootView.findviewbyd(R.id.list);
//创建适配器
workoutsAdapter=新的workoutsAdapter(mContext,光标);
//将适配器设置为ListView
setAdapter(workoutsAdapter);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
字符串idString;
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Log.d(“单击的项”_id=“,”+id);
}
});
返回rootView;
}
私有void addItemsToList(){
Cursor Cursor=db.getWorkoutNames();
Log.d(“history.java”,“finished Cursor Cursor=db.getAllLogs();”;
字符串[]from={“\u id”,“workouts\u name”};
int[]to={R.id.tv_id,R.id.tv_label};
适配器=新的SimpleCursorAdapter(mContext,R.layout.single_项,光标,从,到,0);
setAdapter(适配器);
}
恢复时公开作废(){
super.onResume();
workoutsAdapter=新的workoutsAdapter(mContext,光标);
setAdapter(workoutsAdapter);
}
SaveInstanceState上的公共无效(Bundle savedState){
super.onSaveInstanceState(savedState);
}
}
有人知道我可能做错了什么,以及如何纠正吗

谢谢


如果您想查看其他代码,请告诉我。

我意识到我在错误的文件中实现了这一点。一旦我在适配器中而不是在片段中实现,它就可以完美地工作

view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(mContext, id, Toast.LENGTH_LONG).show();
                Log.d("Clicked item _id = ", "" + id);
                }
        });