同じリスナーを使用したいくつかのアクティビティ
-
30-09-2019 - |
質問
4つのアクティビティには、4つのボタン(各アクティビティに1つ)を含むXMLフッターが含まれています。ここで、これらのボタンにオンクリックリストナーをセットアップしたいと思います(フッターの自己作られたメニューです)。
問題は、コードを再利用できるようにリスナーを使用するにはどうすればよいですか?私には2つのアイデアがあります:
OnClickListenerを実装するクラスを作成し、すべてのアクティビティでボタンを取得し、リスナークラスの新しいインスタンスを作成してボタンを作成します。イベント?そして、どのようにアクティビティを開始する意図を作成しますか?通常、意図= new Intent(fromact.this、toAcitivty.class)を行うことになりますが、私はActivityへの参照を持っていません。
アクティビティから拡張される基本クラスを作成し、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;
}
}
(元の最初の行がコード形式で壊れているため編集されています。
所属していません StackOverflow