だから私はここで少し混乱しています....
私のsqliteデータベースから情報を取得してリストを作成し、標準の配列アダプターを使用してリストを表示するコードがあります。私がやりたいのは、このリストで、「完了」テーブルの行の値が「はい」の場合、行の色が緑色になるようにすることです
使用されているテーブルの私のデータベース構造は次のとおりです。
String CREATE_ACHIEVEMENTS_TABLE = "CREATE TABLE achievements ("
+ "id INTEGER PRIMARY KEY,"
+ "name VARCHAR,"
+ "type VARCHAR,"
+ "value VARCHAR,"
+ "completed VARCHAR"
+ ")";
データベースからリストを取得するコードは次のとおりです。
public ArrayList<String> getAchievements(Context context) {
ArrayList<String> achievementList = new ArrayList<String>();
String selectQuery = "SELECT * FROM achievements ORDER BY id asc";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor != null) {
if (cursor.moveToFirst()) {
do {
if (cursor.getString(4).equals("yes")) {
achievementList.add(cursor.getString(1)+" (completed)");
}
else {
achievementList.add(cursor.getString(1));
}
} while (cursor.moveToNext());
}
}
else {
achievementList.add(context.getResources().getString(R.string.na));
}
cursor.close();
db.close();
return achievementList;
}
ここに私のカスタム配列アダプターがあります:
public class AchievementAdapter extends ArrayAdapter<String> {
private final Context context;
private final String[] values;
public AchievementAdapter(Context context, String[] values) {
super(context, R.layout.achievements, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater inflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.achievement_item, parent, false);
}
return row;
}
}
ここからどこへ行けばいいのか本当にわかりません。これは私の最初の Android アプリであり、多くのことを学びましたが、カスタム arrayadapters に関してこの単純なことを達成する方法を理解できないようです....私が見つけたすべてのチュートリアルには、私が望まない機能がたくさん含まれています。私がやろうとしているのは、「完了」テーブルの値が「はい」の場合、リスト項目のテキストの色を緑にすることです...