Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 检索用户在listview上单击的元素的ID(在数据库中)_Android_Sqlite_Android Intent_Android Activity_Listviewitem - Fatal编程技术网

Android 检索用户在listview上单击的元素的ID(在数据库中)

Android 检索用户在listview上单击的元素的ID(在数据库中),android,sqlite,android-intent,android-activity,listviewitem,Android,Sqlite,Android Intent,Android Activity,Listviewitem,这就是我所做的,检索id,但它说getIndexColumn没有在游标中定义。。。我做错了什么 protected void onListItemClick(ListView l, View v, int position, long id) { Cursor data = (Cursor)l.getItemAtPosition(position); String cat = Cursor.getString(Cursor.getIndexColumn(M

这就是我所做的,检索id,但它说getIndexColumn没有在游标中定义。。。我做错了什么

protected void onListItemClick(ListView l, View v, int position, long id) {
          Cursor data = (Cursor)l.getItemAtPosition(position);
          String cat = Cursor.getString(Cursor.getIndexColumn(MySQLiteHelper.COLUMN_ID));

          Intent myIntent = new Intent(MainActivity.this, sondaggioActivity.class);
          myIntent.putExtra("categoriaId", cat);
          MainActivity.this.startActivity(myIntent);

        }
这是类别类别:

这是数据源:

改变

 Cursor data = (Cursor)l.getItemAtPosition(position);
 String cat = Cursor.getString(Cursor.getIndexColumn(MySQLiteHelper.COLUMN_ID));

改变

 Cursor data = (Cursor)l.getItemAtPosition(position);
 String cat = Cursor.getString(Cursor.getIndexColumn(MySQLiteHelper.COLUMN_ID));

这两条线:

      Cursor data = (Cursor)l.getItemAtPosition(position);
      String cat = Cursor.getString(Cursor.getIndexColumn(MySQLiteHelper.COLUMN_ID));
完全没有道理!如果使用游标适配器,为什么要创建对象数组?如果您使用的是ArrayAdapter,为什么要从游标获取数据

而且,游标没有任何静态方法可以这样调用。这甚至不应该编译

如果您使用的是CursorDater或扩展它的某个类,则id会在此处传递给您的长id受保护的void onListItemClickView l、View v、int position、long id这两行:

      Cursor data = (Cursor)l.getItemAtPosition(position);
      String cat = Cursor.getString(Cursor.getIndexColumn(MySQLiteHelper.COLUMN_ID));
完全没有道理!如果使用游标适配器,为什么要创建对象数组?如果您使用的是ArrayAdapter,为什么要从游标获取数据

而且,游标没有任何静态方法可以这样调用。这甚至不应该编译


如果您使用的是CursorAdater或扩展它的某个类,则id会在此处传递给长id protected void onListItemClickView l、View v、int position、long id,我假设您有一个包含类别列表的活动,单击某个特定项目后,您希望启动包含该项目详细信息的新活动。 我建议您在启动listScreen时,查询所有/部分项目并维护项目的arrayList,并将其保存在某个单例类中,然后单击某个特定项目,通过intent.putExtraindex、position将该索引传递给detail screen,并在detail screen上通过getIntent.getIntExtraindex获取该索引,-1.现在从保存在singleton类中的arraylist获取特定索引的详细信息。
这种方法将减少每次从数据库查询的成本,并且数据将很容易获得。

我假设您有一个包含类别列表的活动,单击某个特定项目后,您希望启动包含该项目详细信息的新活动。 我建议您在启动listScreen时,查询所有/部分项目并维护项目的arrayList,并将其保存在某个单例类中,然后单击某个特定项目,通过intent.putExtraindex、position将该索引传递给detail screen,并在detail screen上通过getIntent.getIntExtraindex获取该索引,-1.现在从保存在singleton类中的arraylist获取特定索引的详细信息。
这种方法将减少每次从数据库查询的成本,数据将很容易获得。

参数long Id是什么?此listview使用的适配器类型是什么?我添加了main活动,我使用e simplecursoradapter atm,但我知道代码非常脏,我的第一个应用程序是:dw关于参数long Id的内容是什么?这个listview使用的是什么类型的适配器?我已经添加了main活动,我使用e simplecursoradapter atm,但是我知道代码非常脏,我的第一个应用程序是:D吗
 Cursor data = (Cursor)l.getItemAtPosition(position);
 Long clid = data.getLong(data.getIndexColumn(MySQLiteHelper.COLUMN_ID));
 String cat=Long.toString(clid);
      Cursor data = (Cursor)l.getItemAtPosition(position);
      String cat = Cursor.getString(Cursor.getIndexColumn(MySQLiteHelper.COLUMN_ID));