2015-05-21 77 views
-1

我正在嘗試使用兩種模式(加法和減法)進行簡單的數學遊戲。我想出瞭如何創建一個按鈕,將「添加按鈕」鏈接到添加活動,但我似乎無法弄清楚如何創建第二個「減法按鈕」,它將鏈接到減法活動。以下是我的破解代碼:將一個活動中的兩個按鈕連接到另外兩個活動

package com.example.kirky_000.madmath; 

import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Button; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.content.Context; 
import android.content.Intent; 


public class MainMenu extends ActionBarActivity { 
    Button button; 
    Button button2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main_menu); 
     addListenerOnButton(); 
} 

    public void addListenerOnButton() { 

     final Context context = this; 

     button = (Button) findViewById(R.id.button); 
     button2 = (Button) findViewById(R.id.button2); 


     button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 

       Intent intent = new Intent(context, Addition.class); 
       startActivity(intent); 

      } 
      button2.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 

        Intent intent = new Intent(context, Subtraction.class); 
        startActivity(intent); 

       } 
     }); 

    } 

回答

1

你的代碼只是有一些語法錯誤,這是根據給定的代碼解決...

package com.example.kirky_000.madmath; 
import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Button; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.content.Context; 
import android.content.Intent; 


public class MainMenu extends ActionBarActivity { 
    Button button; 
    Button button2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main_menu); 
     addListenerOnButton(); 
} 

    public void addListenerOnButton() { 

     final Context context = this; 

     button = (Button) findViewById(R.id.button); 
     button2 = (Button) findViewById(R.id.button2); 
     button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 

       Intent intent = new Intent(context, Addition.class); 
       startActivity(intent); 

      } 
}); 
      button2.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 

        Intent intent = new Intent(context, Subtraction.class); 
        startActivity(intent); 

       } 
     }); 
    } 
} 
0

您的第二條添加偵聽器的指令位於第一個OnClickListener內部。

所以聽者永遠不會被添加到第二個按鈕。你的代碼應該是這樣的:

公共無效addListenerOnButton(){

final Context context = this; 

    button = (Button) findViewById(R.id.button); 
    button2 = (Button) findViewById(R.id.button2); 


    button.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      Intent intent = new Intent(context, Addition.class); 
      startActivity(intent); 

     } 

    }); 

    button2.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 

       Intent intent = new Intent(context, Subtraction.class); 
       startActivity(intent); 

      }); 

} 
0

你需要有不同的按鈕點擊不同的聽衆。現在,您將第二個按鈕的點擊偵聽器放置在第一個按鈕的點擊偵聽器中。該解決方案之前,把它們分開這樣的..

​​
0

一些點(這些將幫助你進一步的編碼)。

  1. 後按鈕聲明中聲明context:那麼Button button, button2後,寫:

    final Context context; 
    
  2. 始終牢記:總是初始化onCreate() 方法的對象。因此,在OnCreate() setContentView(R.layout.activity_main_menu);後,寫:

    button = (Button) findViewById(R.id.button); 
    button2 = (Button) findViewById(R.id.button2); 
    
    //then define context 
    
    context = MainMenu.this; 
    //or context = getApplicationContext(); 
    
  3. 現在addListenerOnButton()功能會是這樣(只需更換 addListenerOnButton()與下面的代碼):

    public void addListenerOnButton(){ 
    button.setOnClickListener(new OnClickListener() { 
    
          @Override 
          public void onClick(View arg0) { 
           // TODO Auto-generated method stub 
           Intent intent = new Intent(context, Addition.class); 
            startActivity(intent); 
          } 
         }); 
    
    button.setOnClickListener(new OnClickListener() { 
    
          @Override 
          public void onClick(View arg0) { 
           // TODO Auto-generated method stub 
           Intent intent = new Intent(context, Subtraction.class); 
           startActivity(intent); 
          } 
         }); 
    } 
    
  4. 現在什麼是王家衛在你的代碼?

    的onClick監聽代碼是錯誤的...

享受編碼:)(和android:))...

0

你甚至可以像這樣

public void mainClickHandler(View v) 
    { 
    switch (v.getId()) { 
     case R.id.button: 

       Intent intent = new Intent(context, Addition.class); 
       startActivity(intent); 

      case R.id.button2: 

       Intent intent = new Intent(context, Subtraction.class); 
        startActivity(intent); 

    } 


    } 
相關問題