SQL游标逐个显示行

时间:2014-12-17 08:28:30

标签: android mysql android-sqlite mysql-workbench

您好我正在尝试制作Android应用,请在我的代码中帮助我,它有table named "details"

 columns 
"_ID" ,"SEX" ,"AGE" ,"NAME". 

我想要做的是在ID为list1和list2的活动中,在两个不同的列表中显示SEX =“MALE”和SEX =“FEMALE”的详细信息(NAME和AGE)。

此外,还应该检查列AGE中的值是否等于变量“age_value”(用户输入的)中的特定值。如果有人可以发给我代码,那将是非常有帮助的,提前谢谢。

需要的事情:

1)创建游标

2)将AGE = agevalue的行放入游标

3)将光标位置设置为起点

4)最初检查光标中的SEX =“MALE”或SEX =“FEMALE”第一行

5)如果MALE在第一个列表(id list1)中显示它

6)否则如果FEMALE将其显示在第二个列表(id list2)

7)将光标的位置增加到下一行并从步骤4开始重复

8)这样做直到光标中的所有行都被

1 个答案:

答案 0 :(得分:1)

您可以轻松地逐步完成:

步骤1和2:使用年龄的Where条件写一个正确的查询:

步骤3:检查光标是否有数据并移至第一个位置

步骤4:检查性别并相应地将该用户保存到String的arraylist。

截至目前,跳过第5步和第6步。 (在迭代到所有记录并在arraylist中保存数据后,在屏幕上相应地显示arraylist,无论你想要哪个视图。两个ListView或LinearLayout并排,你的选择。)

步骤7:移至下一步并重复步骤4.

第8步:关闭光标。返回结果。

所以在这里,你可以保留一个带有两个ArrayList的类,一个用于男性用户,另一个用于女性用户。

public class UserList{
    private ArrayList<String> maleList;
    private ArrayList<String> femaleList;
    //getter setter for Arraylists  
}

//your method to get data
public UserList getUserLists (Context context, String age){
    public UserList userList = new UserList();
    public ArrayList<String> maleList = new ArrayList<String>();
    public ArrayList<String> femaleList = new ArrayList<String>();
    db = dbhelper.getWritableDatabase();
    Cursor cursor = db.rawQuery(
                "select * from USER_INFO where AGE = ?", new String[]{age});
    if(cursor != null)
    {
        if(cursor.moveToFirst())
        {
            do{
                  String user_id = cursor.getString(cursor.getColumnIndex("USER_NAME"));
                  String gender = cursor.getString(cursor.getColumnIndex("GENDER"));
                  if(gender.equalsIgnorease("MALE"))
                      maleList.add(user_id);
                  else
                      femaleList.add(user_id);
              }while(cursor.moveToNext());
              cursor.close();
        }
    }
    userList.setMaleList(maleList);
    userList.setFemaleList(femaleList);
    return userList;
}

现在使用userList的返回对象来检索列表并在屏幕上显示。

希望这有帮助。