約 1 時間前に質問をしたばかりで、返事を待っている間に、私が望むことを別の方法で達成できるのではないかと考えていました。画像を変更することを考えていましたが、グリッドビューの完全なレベルの上に何かを重ねることができればもっと良いでしょう。つまり、小さな目盛りのアイコンです。現時点では、レベルが完了したときに共有設定で保存しています
したがって、レベルを表す画像を表示するための gridView レイアウトがあります。この例では、20 レベルあるとしましょう。1 つのレベルが完了すると、目盛りアイコンを重ねるか、何らかの方法でレベル イメージを強調表示することができます。たぶん、画像の境界線を変更しますか??
ここに私が使用する画像配列があります
int[] imageIDs = {
R.drawable.one,
R.drawable.two,
R.drawable.three,
R.drawable.four,
R.drawable.five,
R.drawable.six
etc.......
そして、gridView で画像を設定するためのコードがあります。明らかに、間にさらに多くのコードがあります。
public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(140, 140));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(5, 5, 5, 5);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(imageIDs[position]);
return imageView;
上記のいずれかを実行することは可能でしょうか。ボーダー メソッドでも問題ありません。助けてくれてありがとう
レベルが開いているときは、スイッチ ケースを使用して他のタスクを実行したり、アイテムの文字列をそれが表す画像の名前に変更したりしています。
switch(question){
case 0:
iv.setImageResource(R.drawable.one);
item = imageOne;
answer1 = "one"
break;
case 1:
iv.setImageResource(R.drawable.two);
item = imageTwo;
answer1 = "two"
break;
default:
break;
}
次に、その文字列を呼び出して、ブール値を画像の名前で保存します
final boolean answerStatusCase = preferences.getBoolean(item, false);
final SharedPreferences.Editor editor = preferences.edit();
Button checkAnswer = (Button) findViewById(R.id.bCheckAnswer);
checkAnswer.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String yourAnswerCheck = yourAnswerReview.toString();
if (yourAnswerCheck.equals(answer1)) {
Toast.makeText(getBaseContext(), "That's correct", 2000).show();
editor.putBoolean(item, true);
editor.commit();
}else{
Toast.makeText(getBaseContext(), "That's incorrect", 2000).show();
}
}
});