Intereting Posts
Android: Autocomplete TextView похож на приложение Facebook Как подсчитать скорость, основанную на шагах Как я могу открыть браузер Android с указанными параметрами POST? Использование 1.7 требует компиляции с Android 4.4 (KitKat); В настоящее время используется API 14 Как отобразить диалог прогресса перед началом активности в Android? Как мне присоединиться к двум таблицам SQLite в приложении для Android? Как установить фоновые рисунки программно в Android Вставка текста на новый эмулятор Android Могу ли я удалить стиль ссылок по умолчанию для Android по умолчанию в webview Ошибка Gradle 0.9. + / 0.9.2: невозможно загрузить класс 'com.android.builder.testing.api.DeviceProvider' Предотвращение / ловушка "Ошибка IllegalArgumentException: параметр должен быть потоком этого представления" Android Bitmap Limit – предотвращение java.lang.OutOfMemory Не удалось найти следующие классы: android.support.v7.internal.app.WindowDecorActionBar Эквивалентно push () или pop () для массивов? Как изменить цвет вкладки «underbar» в actionbarsherlock

Как поймать событие click на кнопке?

.NET Developer здесь только начинается с Eclipse и Android.

Может ли кто-нибудь показать меня самым простым способом, с абсолютными наименьшими строками кода, как сделать что-то при нажатии кнопки?

Моя кнопка имеет кнопку button1 и я просто хочу посмотреть, где / как написать обработчик onClick() .

Итак, допустим, у меня есть imageview1 невидимым. Как я могу сделать это видимым при нажатии кнопки?

РЕДАКТИРОВАТЬ:

Спасибо всем, но поскольку ни один из ваших примеров не работает для меня, я попробую: может кто-нибудь, пожалуйста, напишите код ENTIRE, чтобы сделать эту работу? Не только метод, потому что, когда я пытаюсь использовать ЛЮБОЙ из ваших методов, я получаю ошибки повсюду, поэтому очевидно, что чего-то еще не хватает. Мне нужно все увидеть, начиная со всего импорта.

Solutions Collecting From Web of "Как поймать событие click на кнопке?"

/src/com/example/MyClass.java

 package com.example import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class MyClass extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { ImageView iv = (ImageView) findViewById(R.id.imageview1); iv.setVisibility(View.VISIBLE); } }); } } 

/res/layout/main.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:src="@drawable/image" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/imageview1" android:visibility="invisible" /> </LinearLayout> 

Абсолютно лучший способ: просто дайте вашей активности реализовать View.OnClickListener и напишите свой метод View.OnClickListener следующим образом:

 public void onClick(View v) { final int id = v.getId(); switch (id) { case R.id.button1: // your code for button1 here break; case R.id.button2: // your code for button2 here break; // even more buttons here } } 

Затем в вашем файле макета XML вы можете напрямую настроить прослушиватели кликов с помощью атрибута android:onClick :

 <Button android:id="@+id/button1" android:onClick="onClick" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 1" /> 

Это самый чистый способ сделать это. Сегодня я использую его во всех моих проектах.

Просто объявите метод, например: если идентификатор кнопки ur – button1,

 button1.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(Context, "Hello", Toast.LENGTH_SHORT).show(); } }); 

Если вы хотите сделать imageview1 видимым, то в этом методе пишите:

 imageview1.setVisibility(ImageView.VISIBLE); 

Все ответы основаны на анонимном внутреннем классе. У нас есть еще один способ добавить событие click для кнопок, а также для других компонентов.

Для работы необходимо реализовать интерфейс View.OnClickListener, и нам нужно переопределить функцию onClick. Я думаю, что это лучший подход по сравнению с использованием анонимного класса.

 package com.pointerunits.helloworld; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity implements OnClickListener { private Button login; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); login = (Button)findViewById(R.id.loginbutton); login.setOnClickListener((OnClickListener) this); Log.i(DISPLAY_SERVICE, "Activity is created"); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public void onClick(View v) { Log.i(DISPLAY_SERVICE, "Button clicked : " + v.getId()); } } 

Снято с: http://developer.android.com/guide/topics/ui/ui-events.html

 // Create an anonymous implementation of OnClickListener private OnClickListener mCorkyListener = new OnClickListener() { public void onClick(View v) { // do something when the button is clicked } }; protected void onCreate(Bundle savedValues) { ... // Capture our button from layout Button button = (Button)findViewById(R.id.corky); // Register the onClick listener with the implementation above button.setOnClickListener(mCorkyListener); ... } 

Вы можете просто сделать это в методе onCreate () Activity. Например:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //Assign the button to a variable Button button1 = (Button)findViewById(R.id.button1); //Assign the ImageView to a final variable, so that it's //accessible from an inner class ImageView imageView = (ImageView)findViewById(R.id.imageview1); //Assign it a new OnClickListener button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { imageView.setVisibility(View.VISIBLE); } } }