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);
}
});