2013-02-10 4 views
0

Я реализовал onClickListener и основное действие моего приложения в отдельных классах. Основные классы содержат некоторые кнопки и некоторые edittext, и когда пользователь нажимает кнопку отмены, подсказка edittext должна быть сброшена. Основная деятельностьИзменить вид внутри onClickListener

public ButtonListener(Context cx , Button b, EditText f) { 
    cntx = cx; 
    button = b; 
    et = f; 
} 
@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
      //check wich button was pressed 
    if(button.getId() == R.button.button_cancel) { 
     et.setHint(R.string.et_nome); 
    } 
    else { 
      //operations for other buttons 

Но это не сработает. Когда я нажимаю cancel, edittext не стирается. В основной деятельности я называю кнопку с

Button b = (Button)findViewById(R.button.button_cancel); 

и установить слушателя

b.setOnclickListener(new ButtonListener(this, b, edittext)); 

, что случилось?

+1

'setHint()' не стирает текст, он устанавливает подсказку, чтобы показывать *, когда представление пуст * – Geobits

ответ

3

Попробуйте установить текст его пустым:

et.setText(" ");

Вы можете посмотреть другие методы here.

Другой способ справиться с этим - это спрятать кнопку, чтобы временно ее устранить. Отъезд this thread.

+0

Да, это работает. Не могли бы вы объяснить мне, почему я не мог сделать с setHint()? – giozh

+0

setHint() является постоянным элементом при загрузке представления, который очищается пользовательским взаимодействием. – 2013-02-10 19:36:32

1

Вы должны изменить:

if(button.getId() == R.button.button_cancel) 

к:

if(v.getId() == R.button.button_cancel) 

так, что код проверяет идентификатор элемента, который вызвал событие щелчка, а не переменную члена button.

+0

этот вопрос не будет проблемой, потому что я получил сообщение с сообщением журнала, что оператор if правильно называется – giozh

+0

Ну, это работает, но это несколько избыточно. Рассмотрим экземпляр другого класса 'ButtonListener' с кнопкой' Button', кроме 'R.button.button_cancel'. Теперь утверждение if этого вызова никогда не будет истинным. – Ameen

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