質問

4つのアクティビティには、4つのボタン(各アクティビティに1つ)を含むXMLフッターが含まれています。ここで、これらのボタンにオンクリックリストナーをセットアップしたいと思います(フッターの自己作られたメニューです)。

問題は、コードを再利用できるようにリスナーを使用するにはどうすればよいですか?私には2つのアイデアがあります:

  1. OnClickListenerを実装するクラスを作成し、すべてのアクティビティでボタンを取得し、リスナークラスの新しいインスタンスを作成してボタンを作成します。イベント?そして、どのようにアクティビティを開始する意図を作成しますか?通常、意図= new Intent(fromact.this、toAcitivty.class)を行うことになりますが、私はActivityへの参照を持っていません。

  2. アクティビティから拡張される基本クラスを作成し、4つのアクティビティが基本クラスから拡張されます。次に、ベースクラスでリスナーをセットアップしたいと思います。ここでの問題は、ボタンButton1 =(ボタン)findViewByID(r.id.menu_button1)を実行してボタンへの参照を取得できないことです。 Button1はnullになります。これは、ベースクラスではなくアクティビティで行う必要があるため、SeteventViewに電話さえしていません。

何か案は?

ありがとうございました

役に立ちましたか?

解決

同じコードがここにあります:

    public class MyClass extends Activity implements View.OnClickListener{
        btnA=(Button)findViewById(R.id.btnA);
        btnA.setOnClickListener(this);
        btnB=(Button)findViewById(R.id.btnB);
        btnB.setOnClickListener(this);


    }
    @Override
    public void onClick(View v)
    {
        Button clickedButton = (Button) v;
        switch (clickedButton.getId())
        {
            case R.id.btnA:
                Intent regIntent = new Intent(Home.this,Registration.class);
                startActivityIfNeeded(regIntent, 1);
                break;
            case R.id.btnB:
                //Some code
                break;
        }
    }

(元の最初の行がコード形式で壊れているため編集されています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top