您好我正在尝试制作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)这样做直到光标中的所有行都被
答案 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的返回对象来检索列表并在屏幕上显示。
希望这有帮助。