Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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
Sqlite 使用rawQuery在Android中访问记录,然后显示_Sqlite_Android Fragments - Fatal编程技术网

Sqlite 使用rawQuery在Android中访问记录,然后显示

Sqlite 使用rawQuery在Android中访问记录,然后显示,sqlite,android-fragments,Sqlite,Android Fragments,我正在研究几个rawquery,用于在Android中解析表中的数据。下面的代码工作正常,返回表中最低的rowid public void firstRecord(View v){ Cursor c = db.rawQuery("SELECT * FROM surveyDB WHERE rowid = (SELECT MIN(rowid) FROM surveyDB)",null); c.moveToFirst(); szList.add(c.getString(0));

我正在研究几个rawquery,用于在Android中解析表中的数据。下面的代码工作正常,返回表中最低的rowid

public void firstRecord(View v){
    Cursor c = db.rawQuery("SELECT * FROM surveyDB WHERE rowid = (SELECT MIN(rowid) FROM surveyDB)",null);
    c.moveToFirst();
    szList.add(c.getString(0));

    Toast.makeText(getApplicationContext(), "Sucessful Event. szRowid is: " +szList +".", Toast.LENGTH_LONG).show();
}
我有两个问题,它们都是非常基本的:1)扩展上述代码以创建语言的最佳方式是什么,以捕获此表中特定rowid(rowid、sampler、species、place)处其他列的内容,并在我的应用程序中显示?也许是这样的:

((EditText)findViewById(R.id.edSpecies)).setText("");
使用正确的引用替换
.setText()

字符串表中的“”;
字符串COL_ROW_ID=“rowid”;
字符串COL_SAMPLER=“SAMPLER”;
字符串COL_SPECIES=“SPECIES”;
字符串COL_PLACE=“PLACE”;
公共阵列列表getSurveyRecords()
{
ArrayList记录=新的ArrayList();
String query=“SELECT*FROM”+表格\调查;
查询+=“其中”+COL\u ROW\u ID=“选择最小值(”
查询+=表格+调查中的列(行ID+);
游标c=db.rawQuery(查询,空);
if(Cursor.moveToFirst())
{
做{
String sampler=c.getString(cursor.getColumnIndex(COL_sampler));
stringspecies=c.getString(cursor.getColumnIndex(COL_species));
stringplace=c.getString(cursor.getColumnIndex(COL_-place));
String rowId=c.getString(cursor.getColumnIndex(COL_ROW_ID));
记录。添加(新记录(rowId、物种、地点、采样器));
}while(c.moveToNext())
}
c、 close();
}
公共类调查记录{
字符串mRowId;
字符串类型;
字符串模板;
字符串采样器;
公共调查记录(字符串rowId、字符串种类、字符串位置、字符串采样器)
{
this.mRowId=rowId;
这个。m物种=物种;
this.mPlace=place;
this.mSampler=取样器;
}
}

2014年3月3日发布的代码不再在最新版本的Android Studio中生成。GitHub上有一个更新的示例项目,如下所示:
String TABLE_SURVEY = "surveyDB";
String COL_ROW_ID = "rowid";
String COL_SAMPLER = "sampler";
String COL_SPECIES = "species";
String COL_PLACE = "place";

public ArrayList<SurveyRecord> getSurveyRecords()
{
     ArrayList<SurveyRecord> records = new ArrayList<SurveyRecord>();
     String query = "SELECT * FROM " + TABLE_SURVEY;
     query += " WHERE " + COL_ROW_ID = " SELECT MIN ("
     query += COL_ROW_ID + ") FROM " + TABLE_SURVEY;
     Cursor c = db.rawQuery(query,null);
     if(Cursor.moveToFirst())
     {
          do{
              String sampler = c.getString(cursor.getColumnIndex(COL_SAMPLER));
              String species= c.getString(cursor.getColumnIndex(COL_SPECIES));
              String place = c.getString(cursor.getColumnIndex(COL_PLACE));
              String rowId = c.getString(cursor.getColumnIndex(COL_ROW_ID));
              records.add(new (rowId,species,place,sampler));
            }while(c.moveToNext())
    }
    c.close();
}

public class SurveyRecord{
         String mRowId;
         String mSpecies;
         String mPlace;
         String mSampler;

         public SurveyRecord(String rowId,String species,String place,String sampler)
          {
             this.mRowId = rowId;
             this.mSpecies = species;
             this.mPlace = place;
             this.mSampler = sampler;
          }

}
//Goes to the first record in the dataset
public void firstRecord(View v){
    Cursor c = db.rawQuery("SELECT * FROM surveyDB WHERE rowid = (SELECT MIN(rowid) FROM surveyDB)",null);
    c.moveToFirst();    
    ((EditText)findViewById(R.id.edRowid))  
    .setText(c.getString(0));
    ((EditText)findViewById(R.id.edSpecies))  
    .setText(c.getString(1));
    ((EditText)findViewById(R.id.edArea))  
    .setText(c.getString(2));   
    ((EditText)findViewById(R.id.edSampler))  
    .setText(c.getString(3));
}