2

ボタンをクリックしたときに 1 つの新しいアクティビティを開始する方法は既に知っていますが、1 つのレイアウトに 3 つのボタンがあります。そして、その 1 つのアクティビティの 3 つのボタンのそれぞれが、他の 3 つのアクティビティにリンクするようにします。

「メイン」と呼ばれるアクティビティ、サービスと呼ばれるボタン 1 があり、それをサービス アクティビティにリンクしたいと考えています。ボタン 2 は Search と呼ばれ、Search アクティビティに移動し、3 番目にマップ アクティビティにリンクしたい 'map' に移動します。

誰かが私にこれを手伝ってもらえますか?ありがとう

編集: また、私は Android コーディングの初心者です。もう少し詳しく説明していただけますか?

4

4 に答える 4

3

では、どこに問題があるのでしょうか? クラスが実装し、取得したメソッドView.OnClickListenerをオーバーライドするように設定するだけonClick()です。

public class MainActivity extends Activity implements View.OnClickListener {
   // body
}

@Override
public void onClick(View view) {
   switch (view.getId()) {

      case R.id.serviceBtn:
         Intent serviceIntent = new Intent(this, ServiceActivity.class);
         startActivity(serviceIntent);
         break;
      case R.id.searchBtn:
         Intent searchIntent = new Intent(this, SearchActivity.class);
         startActivity(searchIntent);
         break;
      case R.id.mapBtn:
         Intent mapIntent = new Intent(this, MapActivity.class);
         startActivity(mapIntent);
         break;
   } 
}
于 2012-06-14T18:18:57.293 に答える
1

リスナーonclickを 3 つのボタンすべてに関連付けます。リスナーで、ボタンの ID を取得します。type の変数を作成しますClass。ボタン ID の値に応じて、呼び出すアクティビティのクラスに初期化します。Intent次に、そのクラスの を構築し、 を呼び出しますstartActivity()

hawaii.five-0の編集:これが私が行う方法です:

@Override
public void onClick(View view) {
   Class c = null;
   switch (view.getId()) {
      case R.id.serviceBtn:
         c = ServiceActivity.class;
         break;
      case R.id.searchBtn:
         c = SearchActivity.class;
         break;
      case R.id.mapBtn:
         c = MapActivity.class;
         break;
   } 
   Intent i = new Intent(YourActivity.this, c);
   startActivity(i);
}

EDIT2:

class CurrentActivity extends Activity
    implements OnClickListener  
{
    void onCreate(Bundle b)
    {
        //Other initialization goes here...

        ((Button)findViewById(R.id.MyButton1)).setOnClickListener(this);
        ((Button)findViewById(R.id.MyButton2)).setOnClickListener(this);
        ((Button)findViewById(R.id.MyButton3)).setOnClickListener(this);
    }

}
于 2012-06-14T18:20:09.337 に答える
0

とても簡単です。このコードをボタンクリックイベントに配置するだけです

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
CurrentActivity.this.startActivity(myIntent);
于 2012-06-14T18:18:48.053 に答える
0

ボタンがクリックされたときに新しいアクティビティ を開始するのは非常に簡単です。これについて例を挙げました。

// R.id.btnAdd -> which is present in your layout page
Button btnStart = (Button) findViewById(R.id.btnAdd); // declare button
// declare listener evernt for button
OnClickListener listener = new OnClickListener() {

   @Override
   public void onClick(View v) {
        // declare the Intent for moving another activity
        Intent view = new Intent(YourCurrentClassName.this,
        anotherClassName.class);
        // startActivity is used to navigating the view
        startActivity(view);
    }
};
// set the listener evernt to button
btnStart.setOnClickListener(listener);
于 2013-06-10T10:38:50.893 に答える