2015-05-21 35 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); 

    } 


    } 
相关问题