Вопрос

Моя проблема кажется простой, но я не могу найти здесь ответ.

У меня разные действия в одном приложении. Действия начинают друг друга. у меня есть "главный экран" Это показывает все различные доступные уровни, пользователь нажимает на уровне, и эта деятельность обедать, когда пользователь заканчивает этот уровень, он может нажать кнопку с задней частью, чтобы перейти на основной экран и запустить другой уровень. Когда надавливается, я хотел бы снова повторно набрать «основной экран», так как на этот раз большой палец для завершенного уровня будет отличаться, чтобы показать, что он завершен.

Итак, как мне запустить повторный разорение при активности на даче на заднем плане? (Полагаю, я должен поместить какой -то код в метод действия.(Я использую SharedPreferences, чтобы сохранить состояние готовых уровней)

Основная экрана в основном это:

    /** Called when the activity is first created. */
    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 использует логическое истинное/false, чтобы выбрать источник изображения, либо незаконченного большого пальца, либо больного большого пальца на уровне.

Это было полезно?

Решение

Сначала положите свой GridView objet как член класса. Затем переопределить onResume() Метод, в котором вы можете переоценить адаптер представления сетки на основе того, что сделал пользователь.

private GridView gridview;
@Override
protected void onResume() {
    super.onResume();
    gridview.setAdapter(/* your new ImageAdapter here */);
}

Другие советы

Вы должны использовать startActivityForResult() метод Мероприятия. Анкет По сути, вы начинаете свое следующее действие, запрашивая статус запроса, когда он заканчивается. Непосредственно перед завершением он должен вызовать SetResult (позволяя вам указать, завершил ли пользователь уровень или нет). Заявление, которое назвало его (ваш основной экран), будет иметь свое onActivityResult() Метод называется. В этом методе вы можете обновить свои представления по мере необходимости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top