私の問題は単純に思えますが、ここで答えを見つけることができません。
1 つのアプリケーションでさまざまなアクティビティがあります。活動はお互いに始まります。利用可能なすべてのレベルを表示する「メイン画面」があり、ユーザーがレベルをクリックすると、そのアクティビティが開始されます。ユーザーがそのレベルを終了すると、戻るボタンを押してメイン画面に移動し、別のレベルを開始できますレベル。戻るボタンを押すと、もう一度「メイン画面」を再描画したいと思います。今回は、完了したレベルの親指が異なって完了したことを示すためです。
では、戻るボタンが押されたときにアクティビティで再描画を実行するにはどうすればよいですか? (Activity.onResume メソッドにコードを追加する必要があると思います) (完成したレベルの状態を保存するために SharedPreferences を使用します)
メイン画面のアクティビティは基本的に次のとおりです。
/** アクティビティが最初に作成されたときに呼び出されます。*/
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maps);
SharedPreferences settings = getSharedPreferences((getResources().getString(R.string.PREFS_HI)),0);
/**/
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this,(settings.getBoolean("level_1_finished", false))));
/**/
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
//Open the map which was clicked on, if there is one
if(position+1 > 1){
Toast.makeText(maps.this, "Level " + (position+1) + " is not yet available!", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(maps.this, "Opening Level " + (position+1), Toast.LENGTH_SHORT).show();
Intent myIntent = new Intent(v.getContext(), Tutorial2D.class);
startActivity(myIntent);
}
}
});
}
次に、ImageAdapter はブール値の true/false を使用して、画像のソース (未完成のつまみまたは完成したレベルのつまみ) を選択します。