Лучшая практика для определения событий кнопок в AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Лучшая практика для определения событий кнопок в Android

Сообщение Anonymous »

У меня есть макет, определенный в XML, который состоит из нескольких кнопок.

В настоящее время я делаю это в методе OnCreate, чтобы определить обработчики событий для кнопок:

Код: Выделить всё

public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button newPicButton = (Button)findViewById(R.id.new_button);
newPicButton.setOnClickListener(btnListener);
..... similarly for other buttons too
.....
}
Внутри события onClick кнопки я запускаю намерение камеры, чтобы получить изображение, а внутри обратного вызова onActivityResult я снова устанавливаю обработчики событий вместе с настройкой представления следующим образом:

Код: Выделить всё

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
setContentView(R.layout.main);
Button newPicButton = (Button)findViewById(R.id.new_button);
newPicButton.setOnClickListener(btnListener);
...similarly for other buttons too
}
Я новичок в Android, и такой подход к переопределению события каждый раз кажется мне довольно грязным. Я хотел бы знать, как лучше всего определять обработчики событий кнопок в подобных сценариях.

Изменить: вставка моего полного класса

Код: Выделить всё

public class CameraAppActivity extends Activity
{
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button newPicButton = (Button)findViewById(R.id.new_button);
newPicButton.setOnClickListener(btnListener);
}

//---create an anonymous class to act as a button click listener---
private OnClickListener btnListener = new OnClickListener()
{

public void onClick(View v)
{
//Intent newPicIntent = new Intent(v.getContext(), NewPictureActivity.class);
//startActivityForResult(newPicIntent, 0);
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, 999);
}

};

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{

setContentView(R.layout.main);
Button newPicButton = (Button)findViewById(R.id.new_button);
newPicButton.setOnClickListener(btnListener);

//if I comment last two lines nothing happens when I click on button

}
Главный вопрос

Код: Выделить всё

setContentView(R.layout.main);
Button newPicButton = (Button)findViewById(R.id.new_button);
newPicButton.setOnClickListener(btnListener);
Перерегистрация событий внутри onActivityResult.. это правильный подход? Или я делаю что-то не так? Потому что, если я не перерегистрирую событие, при нажатии кнопки ничего не произойдет.

Подробнее здесь: https://stackoverflow.com/questions/637 ... in-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»