1

<include />レイアウトを別のレイアウトに含めるために使用できます。

を使用して、 activity_main.xmlactivity_second.xmlに含めて<include />います。

activity_main.xmlにはとが<TextView />あり<Button />ます。そして、MainActivity.java<Button />にハンドラーdoThis(View v){..}があります

SecondActivity.javaでボタンハンドラーを再利用するにはどうすればよいですか

4

3 に答える 3

2

ボタンハンドラーはありません。ですOnClickListener。そして、それを再利用するには、そのソースを2番目のアクティビティクラスにコピーするか、拡張してそこに共通コードを配置するクラスを作成しますMyActivityMainActivitySecondAcivity

于 2012-08-31T13:18:51.053 に答える
2

そのためにフラグメントを使用できます

于 2012-08-31T13:25:17.883 に答える
1

私はあなたの質問に似たようなことをしました。フラグメントを使用するよりも良いとは思わないでください。

layout_main.xmlがあります。他のXML(menu.xml)を次のようにインポートできます。

<include
    android:id="@+id/layoutMenu"
    layout="@layout/menu" />

次のようなMenu.javaクラスを作成します(これを自分のクラスからコピーしたので、完全ではありませんが、そのためです)。

 public class Menu {

ImageView buttonNieuws;

public void set(Activity activity, String currentPage) {

    // Button NIEUWS
    buttonNieuws = (ImageView) activity.findViewById(R.id.button_nieuws);

    if (!currentPage.equals("nieuws")) {

        buttonNieuws.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(view.getContext(),
                        Nieuws.class);
                view.getContext().startActivity(intent);
            }
        });

    } else {

        buttonNieuws.setImageDrawable(activity.getResources().getDrawable(
                R.drawable.button_nieuws_on));
    } ...

次に、メインのアクティビティクラスで、次のようなコードを使用してすべてをリンクできます。

 Menu menu = new Menu();
 menu.set(this, currentPage);

大きな欠点は、無制限のアクティビティが互いに積み重なることです。私はまだフラグメントに入っていないので、これは私の一時的な解決策です。

于 2012-08-31T13:51:48.347 に答える