ここでいくつかの問題が発生し、あなたが私を助けてくれることを願っています。
最初に状況を明確にしましょう。
内部にR.drawable.imagesが含まれる整数の静的配列があります。コードは次のとおりです
private Integer[] imageIDs = {
//R.drawable.medal_my_first_perxtamp,
R.drawable.medal..._gray,
R.drawable.medal_y...te_me_gray,
R.drawable.medal_t...ring_gray,
R.drawable.medal_gi...ray,
R.drawable.medal_a..._gray,
R.drawable.medal_se..gray,
R.drawable.medal_p...._gray,
R.drawable.medal_m..._gray,
R.drawable.medal_lo.._gray,
R.drawable.m..._gray,
R.drawable.med..,
R.drawable.med..on_gray
};
今私がやろうとしているのは、条件に基づいてimageIDの値を変更することです。そのため、このコードをgetviewに追加しました。
sqlAdapter = new SQLiteAdapter(mContext);
sqlAdapter.openToRead();
List<Integer> imageIDList = Arrays.asList(imageIDs);
String query2="Select achievementID from achievementdata_tb where memberID = 101";
Cursor cursor2 =sqlAdapter.read(query2);
if (cursor2 != null && cursor2.moveToFirst()) {
while(cursor2.moveToNext()){
val =cursor2.getString(0);
int val2 = Integer.parseInt(val);
String returnDrawable = getDrawables(val);
int intReturnDrawable = Integer.parseInt(returnDrawable);
imageIDList.set(val2, intReturnDrawable);
}
}
database(achievement_ID)から値を取得しており、値は(6,2,3)であることに注意してください。
だから私がしたことは、カーソルのアイテムを1つずつ取得し、それをpublicvoidgetDrawablesでチェックすることです。
public String getDrawables(String str){
if (str.equals("3")){
str= "R.drawable.med...g";
}
else if (str.equals("2")){
str= "R.drawable.med..._me";
}
else if (str.equals("6")){
str= "R.drawable.me...._up";
}
return str;
}
配列imageID(ドローアブル)の値を別のドローアブルイメージに変更したいことを確認してください。
エラーがないので、デバッガーを使用すると、この部分でエラーが発生していることがわかりました。int intReturnDrawable = Integer.parseInt(returnDrawable);
私はandriodを初めて使用しますが、いくつかの基本的な機能を知っています。これを解決するのを手伝っていただけませんか。