【问题标题】:Android Java implement 2 buttons in 1 pageAndroid Java实现1页2个按钮
【发布时间】:2015-02-23 21:57:15
【问题描述】:

我终于学会了在页面中添加一个按钮,并真正让它导航到另一个活动“XML 页面”。无论如何,我一直在尝试在同一页面中添加 2 个按钮,这些按钮将每个按钮导航到不同的 XML 页面。我所做的只是复制第一个有效的按钮,然后更改按钮名称和所有其他内容,第一个按钮有效,但第二个无效。它显示了一次点击,但之后没有任何反应。 Back1 按钮有效。 TMode 按钮可以解决问题。 Eclipse 没有显示错误。

这是我的代码 -

import android.app.Activity;
import android.content.Intent;

import android.os.Bundle;
import android.view.View;

import android.view.View.OnClickListener;
import android.widget.Button;

public class GameMode extends Activity {

    /** Called when the activity is first created.*/
    Button btn;
    Button btn1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_game_mode);

        btn=(Button)findViewById(R.id.Back1);

        btn.setOnClickListener(btn2Listener);
    }

    private OnClickListener btn2Listener=new OnClickListener() {
        public void onClick(View v) {
            Intent intent2=new Intent(GameMode.this,MainActivity.class);

            startActivity(intent2);
        }
    };

    public void onCreate1(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_game_mode);

        btn=(Button)findViewById(R.id.TMode);
        btn.setOnClickListener(btn3Listener);
    }

    private OnClickListener btn3Listener=new OnClickListener() {
        public void onClick(View v) {
            Intent intent3=new Intent(GameMode.this,CharacterSelect.class);

            startActivity(intent3);
        }
    };
}

【问题讨论】:

    标签: java android xml button


    【解决方案1】:

    试试这样的:

    import android.app.Activity; 
    import android.content.Intent;
    import android.os.Bundle; 
    import android.view.View;
    import android.view.View.OnClickListener; 
    import android.widget.Button;
    
    public class GameMode extends Activity {
    
    Button btn1;
    Button btn2;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game_mode);
    
        btn1=(Button)findViewById(R.id.Back1);
        btn1.setOnClickListener(btn1Listener);
    
        btn2=(Button)findViewById(R.id.TMode);
        btn2.setOnClickListener(btn2Listener);
    }
    
    
    private OnClickListener btn1Listener=new OnClickListener() {
        public void onClick(View v) {
                Intent intent1=new Intent(GameMode.this,MainActivity.class);
                startActivity(intent2);
            }
        };
    private OnClickListener btn2Listener=new OnClickListener() {
        public void onClick(View v) {
                Intent intent1=new Intent(GameMode.this,CharacterSelect.class);
                startActivity(intent2);
            }
        };     
    }
    

    【讨论】:

      【解决方案2】:

      你应该在你的 XML 文件中定义两个按钮

      <Button
         android:id="@+id/button1"
         ... />
      
      <Button
         android:id="@+id/button2"
         ... />
      

      然后在 onCreate() 方法中的 Activity 中执行

      Button button1 = (Button) findViewById(R.id.button1);
      button1.setOnClickListener(new OnClickListener() {
          ...
      })
      
      Button button2 = (Button) findViewById(R.id.button2);
      button2.setOnClickListener(new OnClickListener() {
          ...
      });
      

      【讨论】:

      • @ByteHamster 我尝试了你的方法.. 它现在转换为其他 XML,但由于某种原因,应用程序在转换后崩溃
      • 没关系,我解决了它..我不得不删除我在目标 XML 中的一些额外导入
      【解决方案3】:
      import android.app.Activity; 
      import android.content.Intent;
      
      import android.os.Bundle; 
      import android.view.View;
      
      import android.view.View.OnClickListener; 
      import android.widget.Button;
      
      public class GameMode extends Activity {
      
      Button btn1;
      
      Button btn2;
      
      @Override
      
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
      
          setContentView(R.layout.activity_game_mode);
      
          btn1=(Button)findViewById(R.id.Back1);
          btn1.setOnClickListener(btn1Listener);
      
          btn2=(Button)findViewById(R.id.TMode);
      
          btn2.setOnClickListener(btn2Listener);
      }
      
      
      private OnClickListener btn1Listener=new OnClickListener() {
      
          public void onClick(View v) {
      
                  Intent intent1=new Intent(GameMode.this,MainActivity.class);
      
                  startActivity(intent1);
              }
          };
      private OnClickListener btn2Listener=new OnClickListener() {
      
          public void onClick(View v) {
      
                  Intent intent2=new Intent(GameMode.this,CharacterSelect.class);
      
                  startActivity(intent2);
              }
          };     
      }
      

      【讨论】:

      • 这不正是@ByteHamster 建议的吗?你应该接受他的回答。
      • 是的,但我是新来的,我不知道我有办法接受答案.. 但完成了 :) 做到了!
      猜你喜欢
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多