Как настроить класс для панели изображений? - PullRequest
0 голосов
/ 18 января 2011

Я сделал одну простую панель кнопок. <?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" android:orientation="horizontal" android:gravity="bottom" android:id="@+id/buttonpanel"> <ImageButton android:id="@+id/buttonhome" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/homeselector" android:focusable="true"> </ImageButton> <ImageButton android:id="@+id/buttonsearch" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/searchselector" android:focusable="true"> </ImageButton>> <ImageButton android:id="@+id/buttonreg" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/registerselector" android:focusable="true"> </ImageButton>> <ImageButton android:id="@+id/buttonlogin" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/loginselector" android:focusable="true"> </ImageButton> </LinearLayout>

Теперь моя проблема в том, что я использую его во всем приложении. Предположим, у меня есть 4 класса активности, которые включают эту панель.

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

buttonhome=(ImageButton)findViewById(R.id.buttonhome);
    buttonhome.setOnClickListener(this);

    buttonsearch=(ImageButton)findViewById(R.id.buttonsearch);
    buttonsearch.setOnClickListener(this);

    buttonreg=(ImageButton)findViewById(R.id.buttonreg);
    buttonreg.setOnClickListener(this);

    buttonlogin=(ImageButton)findViewById(R.id.buttonlogin);
    buttonlogin.setOnClickListener(this);

}
public void onClick(View view)
{
    int id=view.getId();
    switch (id) {
    case R.id.buttonhome:
        break;
    case R.id.buttonsearch:
        break;
    case R.id.buttonreg:
        break;
    case R.id.buttonlogin:
        finish();
        startActivity(new Intent("com.coupon.main.couponmandi.Login"));
        break;
    }

так есть ли способ, которым я могу сделать один единственный класс, который обрабатывает все вещи.

Thankx

1 Ответ

2 голосов
/ 18 января 2011

Создайте класс, который реализует clicklistener, и поместите все вышеуказанные коды тамВ каждом упражнении создайте этот класс.

public class ButtonHandler implements OnClickListener{
    private Activity mContext;
    public ButtonHandler(Activity context){
       mContext=context;

       buttonhome=(ImageButton)mContext.findViewById(R.id.buttonhome);
       buttonhome.setOnClickListener(this);
       ...
    }

    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...