2015-02-22 3 views
0

Сначала этот вопрос задавался несколько раз, однако, ни один из этих вопросов не ответил ни на какие вопросы. У меня есть один пример, который работает в основном классе деятельности:Двойной щелчок на кнопке Android

final Button button = (Button) findViewById(R.id.viewcatalog); 
button.setFocusable(true); 
button.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     setContentView(R.layout.find_item); 
    } 
}); 

Но все мои других попыток повторить это в последовательных страницах привели к неудаче. Я знаю, что они не будут работать одинаково, так это то, что мои кнопки создаются в других классах, а не в классе хоста. Каков правильный способ исправить эту ошибку?

Метод, который не работает для справки:

public void OnClickSearch(View view) { 
    final Button button = (Button) findViewById(R.id.button2); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      EditText text = (EditText)findViewById(R.id.editText); 
      String value = text.getText().toString(); 
      setContentView(R.layout.search_results); 
     } 
    }); 
} 
+1

Что происходит, вы настраиваете свои представления и слушателей, и как только вы нажимаете кнопку, все взгляды заменяются новыми, которые, конечно же, не имеют слушателей. –

+1

В последнее время изменилось определение «двойной щелчок»? –

ответ

3

Это звучит, как вы неправильно понять, как интерфейс работает в Android. Обычно не ожидается, что вы измените представление Activity на лету, как вы это делаете в своем OnClickListener.

Вместо этого вы должны сделать одну из двух вещей. Или переключитесь на новое действие, используя метод Intent и startActivity, или используйте Fragments и замените фрагмент в своей деятельности новым фрагментом.

Смежные вопросы