Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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/8/grails/5.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 从表中获取多个值 public List getDays(长iid) { 列表天数=新建ArrayList(); cursor=database.query(MySqliteHelper.TABLE_REPEAT,daysColumn,MySqliteHelper.COLUMN_TID+“=”+iid,null,null,null,null); 而(fg>=1) { cursor=database.query(MySqliteHelper.TABLE_REPEAT,daysColumn,MySqliteHelper.COLUMN_TID+“=”+iid,null,null,null,null); stringday=cursor.getString(cursor.getColumnIndex(MySqliteHelper.COLUMN_DAYS)); 天。添加(天); cursor.moveToNext(); if(cursor.isAfterLast()) { fg=0; } } cursor.close(); fg=1; 返程天数; }_Android - Fatal编程技术网

Android 从表中获取多个值 public List getDays(长iid) { 列表天数=新建ArrayList(); cursor=database.query(MySqliteHelper.TABLE_REPEAT,daysColumn,MySqliteHelper.COLUMN_TID+“=”+iid,null,null,null,null); 而(fg>=1) { cursor=database.query(MySqliteHelper.TABLE_REPEAT,daysColumn,MySqliteHelper.COLUMN_TID+“=”+iid,null,null,null,null); stringday=cursor.getString(cursor.getColumnIndex(MySqliteHelper.COLUMN_DAYS)); 天。添加(天); cursor.moveToNext(); if(cursor.isAfterLast()) { fg=0; } } cursor.close(); fg=1; 返程天数; }

Android 从表中获取多个值 public List getDays(长iid) { 列表天数=新建ArrayList(); cursor=database.query(MySqliteHelper.TABLE_REPEAT,daysColumn,MySqliteHelper.COLUMN_TID+“=”+iid,null,null,null,null); 而(fg>=1) { cursor=database.query(MySqliteHelper.TABLE_REPEAT,daysColumn,MySqliteHelper.COLUMN_TID+“=”+iid,null,null,null,null); stringday=cursor.getString(cursor.getColumnIndex(MySqliteHelper.COLUMN_DAYS)); 天。添加(天); cursor.moveToNext(); if(cursor.isAfterLast()) { fg=0; } } cursor.close(); fg=1; 返程天数; },android,Android,现在我得到了arrayindexoutofbound异常!!我不熟悉安卓和编程。。 建议我应该使用什么技巧 我的日志显示: 03-06 11:20:12.941:E/AndroidRuntime(2025):致命异常:主 03-06 11:20:12.941:E/AndroidRuntime(2025):java.lang.RuntimeException:无法启动活动组件信息{com.example.habitator/com.example.habitator.AlarmDays}:andr

现在我得到了
arrayindexoutofbound
异常!!我不熟悉安卓和编程。。 建议我应该使用什么技巧

我的日志显示: 03-06 11:20:12.941:E/AndroidRuntime(2025):致命异常:主
03-06 11:20:12.941:E/AndroidRuntime(2025):java.lang.RuntimeException:无法启动活动组件信息{com.example.habitator/com.example.habitator.AlarmDays}:android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为1

为什么再次查询数据库?如果cursor.isAfterLast()满足,则使用break。由于这一点,您将获得错误arrayindexoutofbound和

还指定cursor.moveToFirst();在第一个位置移动光标

试试这个:

public List<String> getDays(long iid)
{
  List<String> days= new ArrayList<String>();
  cursor = database.query(MySqliteHelper.TABLE_REPEAT, daysColumn, MySqliteHelper.COLUMN_TID + "=" + iid, null, null, null, null);
  while(fg>=1)
  {
      cursor = database.query(MySqliteHelper.TABLE_REPEAT, daysColumn, MySqliteHelper.COLUMN_TID + "=" + iid, null, null, null, null);
          String day = cursor.getString(cursor.getColumnIndex(MySqliteHelper.COLUMN_DAYS));
        days.add(day);
      cursor.moveToNext();
          if(cursor.isAfterLast())
          {
       fg=0;
          }
  }
  cursor.close();
  fg=1;
  return days;
  }
public List getDays(长iid)
{
列表天数=新建ArrayList();
cursor=database.query(MySqliteHelper.TABLE_REPEAT,daysColumn,MySqliteHelper.COLUMN_TID+“=”+iid,null,null,null,null);
cursor.moveToFirst();
而(fg>=1)
{
if(cursor.isAfterLast())
{
fg=0;
中断;//中断循环
}
stringday=cursor.getString(cursor.getColumnIndex(MySqliteHelper.COLUMN_DAYS));
天。添加(天);
cursor.moveToNext();
}
cursor.close();
fg=1;
返程天数;
}
希望这对你有用

Cursor c=db.rawQuery(“从表_name中选择*,其中user_fk=”+get_userid+”,null);
public List<String> getDays(long iid)
{
  List<String> days= new ArrayList<String>();
  cursor = database.query(MySqliteHelper.TABLE_REPEAT, daysColumn, MySqliteHelper.COLUMN_TID + "=" + iid, null, null, null, null);
  cursor.moveToFirst();
  while(fg>=1)
  {
         if(cursor.isAfterLast())
          {
              fg=0;
              break; //brek the loop 
          }
      String day = cursor.getString(cursor.getColumnIndex(MySqliteHelper.COLUMN_DAYS));
        days.add(day);
      cursor.moveToNext();  
  }
  cursor.close();
  fg=1;
  return days;
  }
列表=新的ArrayList(); c、 moveToFirst(); 而(!c.isAfterLast()) { title=newstring[]{c.getString(3),c.getString(0)}; 列表。添加(标题); c、 moveToNext(); } c、 close(); db.close();
1.使用数组从表中获取多个值


2.之后,将该数组值存储在列表中。

亲爱的,您是否确切知道什么是
光标
?你用上面的代码做什么?我已经编辑了我的问题。请检查我是否编辑了我的代码。在获取-1索引时,首先检查cursor.isAfterLast()是否正确,如果是,则中断循环,如果不是,则只执行下一个代码我的程序现在不会崩溃,但只显示一行。事实上,有一排带约束的鬃毛!!我真的不明白为什么它不能添加!!是否已从while循环中删除了database.query()代码?您已经写了两次,它再次初始化同一个游标。不需要在while循环中写入它。请查看代码以供参考,并让我知道它是否有效对不起,我是StackExchange的新手,没有足够的声誉可以投票:(但如果我有足够的声誉可以投票,我会确定:)
      Cursor c=db.rawQuery("select * from table_name where user_fk='" + get_userid + "'",null);
     List<String[]> list = new ArrayList<String[]>();

         c.moveToFirst();
         while(!c.isAfterLast())
         {
             title=new String[]{c.getString(3),c.getString(0)};
             list.add(title);
             c.moveToNext(); 
         }      

     c.close();
     db.close();