2014-02-07 3 views
4
<Button 
    android:id="@+id/button1" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/textView1" 
    android:layout_alignParentTop="true" 
    android:text="@string/button1" 
    android:onClick="onClickButton"/> 


public void onClickButton(View view){ 


    TextView textview = (TextView) findViewById(R.id.textView1); 

    textview.setVisibility(View.VISIBLE); 


} 

Это код, который заставляет текст отображаться в главном интерфейсе активности при нажатии кнопки. Какова точка прохождения объекта View, если вы не используете его в блоке метода onClickButton? Я спрашиваю об этом, потому что приложение выходит из строя, если я не учитываю параметр, даже если я не использую объект вида в блоке кода.Зачем вам нужно передавать объект типа Вид на этот метод?

ответ

4

Возможно, у вас есть несколько кнопок в вашем макете и только один метод в вашем действии. В такой ситуации возникает необходимость различать разные кнопки.

Вот где это можно использовать.

 
public void onClickButton(View view){ 
    if(view.getId() == R.id.buttonSave){ 
     // Do something 
    } else if(view.getId() == R.id.buttonCancel){ 
     // Do something else 
    } 
} 

Хотя, вы можете привязывать различные методы к различным представлениям, имея метод для каждого типа вида.

Еще один вариант использования может быть:

После нажатия на кнопку, вы хотите изменить саму кнопку, скажем, скрыть или изменить метку, то вы, очевидно, нужна ссылка на кнопку ,

+0

Похоже, что это будет меньше кода беспорядка, если бы у вас был только один метод onclick для нескольких кнопок. Благодарю. –

+0

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

+0

Я понимаю. Благодарю. –

0

Что такое точка передачи в виде объекта типа View, если вы не используете его в блоке метода onClickButton?

Прежде всего, расскажите, пожалуйста, о Button Docs. Во-вторых, он может использоваться в функции. Поскольку Button s не являются единственными View s, которые являются clickable, с параметром View, вы можете проверить тип View, чтобы увидеть, что было нажато, и выполнить другие операции с ним.

0
public void onClickButton(View view){ 
    TextView textview = (TextView)view; 
    textview.setVisibility(View.VISIBLE); 
} 

Это должно работать, если вы передаете представление непосредственно методу.

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