Почему currentView назначен неправильному представлению? - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть действие под названием Activity, и это действие переключается между View1 и View2, когда кнопка нажимается методом setContentView ().

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.category_list);

    }

Я хочу переключиться на View1, когда нажата кнопка BackButton на устройстве.

public void onBackPressed(){
        View currentView = this.findViewById(R.layout.product_list);
        if(currentView == findViewById(R.layout.category_list)){
            Log.i("VIEW1", "BACKBUTTON CLICKED ON VIEW1");

        } else if(currentView == findViewById(R.layout.product_list)) {
            Log.i("VIEW2", "BACKBUTTON CLICKED ON VIEW2");
        }
    }

Почему-то каждый раз, когда я нажимаю кнопку «Назад» на view2, запускается оператор if для view1. CurrentView становится view1, в то время как я назначил его view2. Почему это происходит?

public void onClick(View view) {      

        setContentView(R.layout.product_list);          
    }

1 Ответ

0 голосов
/ 12 сентября 2018
  1. объявляет View currentView на уровне класса

  2. установить значение в onCreate

    currentView = this.findViewById(R.layout.category_list);
    
  3. 1012 * тогда *

    public void onBackPressed(){;
         if(currentView == findViewById(R.layout.category_list)){
              Log.i("VIEW1", "BACKBUTTON CLICKED ON VIEW1");
              currentView = this.findViewById(R.layout.product_list);
          } else {
              Log.i("VIEW2", "BACKBUTTON CLICKED ON VIEW2");
              currentView = this.findViewById(R.layout.category_list);
          }
     }
    

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...