あなたはコードのボタンにリスナーをfindViewByIdで追加すると言うので、xmlでレイアウトを設計できないという要件があると仮定しています。したがって、これらのボタンをすべて保持している最初のアクティビティを設定するときは、すべて同じクリックリスナを取得するようにしてください。このリスナメソッドをmapsButtonListener
と呼びます。それはこのように宣言する必要があります。私達のボタンのIDについて
public void mapsButtonListener(View sender) {
int id = sender.getId();
Intent mapsActivity = new Intent(getApplicationContext(), MapsActivity.class);
mapsActivity.putExtra("button_id", id);
startActivity(mapsActivity);
}
:あなたはちょうど彼らがIDを持っていることを確認した後、XMLのデザインを使用してボタンを配置している場合
をSは:XMLで宣言sの。しかし、でない場合は、 xmlを使用してコード内でインスタンス化する代わりに、setId(4)
というメソッドを使用してid:sのボタンを指定する必要があります(4つを明示的に指定しないでください。 hehe)。これは、クリックリスナを追加するのと同時に実行する必要があります。また、どのボタンがどの番号を取得しているかを確認して、後でこれを確認することもできます。
mapsActiviyが開始されるとMapsActivityでIDを取得し、我々はそのIDをお勧めします。
int id = getIntent().getIntExtra("button_id");
ボタンを正しく取得するには、findViewById(...)を使用しますか?次の行を使用します(MapsActivityクラス内)。この関数に渡すパラメータはボタンIDですね。 – kosa
確かに私は、ボタンを取得し、インテントを作成するonClickListenerを設定するためにfindViewById(..)を使用します。 – kmb64
複数のボタンに対して同じリスナーを使用していますか?そうでない場合は、ハードコーディングできますか? – kosa