【问题标题】:Why does my Android button not work?为什么我的 Android 按钮不起作用?
【发布时间】:2013-04-30 11:59:19
【问题描述】:

我正在尝试使用一个简单的按钮来在屏幕之间导航,我真的不确定我做错了什么,因为我遵循了一个指南!

首页代码:

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

Button aButton;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main);
 } {
 aButton = (Button) this.findViewById(R.id.scales); 
 aButton.setOnClickListener( {;new OnClickListener();
}
public void onClick(View v){
Intent i = new Intent(mainactivity.this, buttons2.class); startActivity(i);
} }

清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.xx"
android:versionCode="1"
android:versionName="1.0" >

 <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />


 <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.xx.MainActivity"
        android:label="@string/app_name" >
              android:label="MainActivity">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>
<activity android:name="Buttons2" android:label="Buttons2"></activity>

     </application>

</manifest>

第二页代码:

import android.app.Activity;
import android.os.Bundle;

public class Buttons2 extends Activity {
/** Called when the activity is first created. */
 @Override
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.other);
} }

请帮忙!

谢谢!

【问题讨论】:

  • 尝试删除 ;在 aButton.setOnClickListener( {;new OnClickListener(); --> aButton.setOnClickListener( {new OnClickListener();

标签: android eclipse button navigation


【解决方案1】:

尝试重新格式化您的代码。有很多括号。
它应该这样工作:

public void onCreate(Bundle savedInstanceState) { 
   super.onCreate(savedInstanceState); 
   setContentView(R.layout.activity_main);
    aButton = (Button) this.findViewById(R.id.scales); 
    aButton.setOnClickListener(new OnClickListener() {
       public void onClick(View v) {
          Intent i = new Intent(mainactivity.this, buttons2.class); 
          startActivity(i);
       } 
    });
}

【讨论】:

    【解决方案2】:

    你的 MainActivity 块有严重的问题:o

    public class MainActivity extends Activity {
    
        Button aButton;
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.activity_main);
            aButton = (Button) this.findViewById(R.id.scales); 
            aButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(MainActivity.this, Buttons2.class); 
                    startActivity(i);
                }
            });
        } 
    }
    

    【讨论】:

      【解决方案3】:

      您的 MainActivity 的 onCreate() 是问题所在。它应该是这样的。

      @Override
      public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_main);
       aButton = (Button) this.findViewById(R.id.scales); 
       aButton.setOnClickListener(new OnClickListener();
       tb.setOnClickListener(new OnClickListener(){
          public void onClick(View v) {
            Intent i = new Intent(MainActivity.this, Buttons2.class); 
            startActivity(i);
          }
       });
      

      还要确保 activity_main.xml 有一个 Button

      android:id="@+id/R.id.scales"
      

      【讨论】:

        【解决方案4】:

        您的问题似乎出在您的 onCreate 方法中。您正在使用 } 关闭 onCreate,然后尝试通过 findViewById 找到按钮。由于 this 不包含在方法中,因此它永远不会被调用。试试这样的:

        @Override
        public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main);
        
        aButton = (Button) this.findViewById(R.id.scales); 
        aButton.setOnClickListener(new View.OnClickListener()
             public void onClick(View v){
                 Intent i = new Intent(mainactivity.this, buttons2.class);
                 startActivity(i);
             }); 
         }
        

        【讨论】:

          【解决方案5】:

          首先,在你的情况下,你不需要在findViewById(); 之前写这个。并进行以下更正:

              public class MainActivity extends Activity {
          
          Button aButton;
          /** Called when the activity is first created. */
          @Override
          public void onCreate(Bundle savedInstanceState) { 
              super.onCreate(savedInstanceState); 
              setContentView(R.layout.activity_main);
          
                   aButton = (Button) this.findViewById(R.id.scales); 
                   aButton.setOnClickListener( new OnClickListener()
          
                  public void onClick(View v){
                  Intent i = new Intent(mainactivity.this, buttons2.class); 
                  startActivity(i);
                  });
              }
          }
          

          其余的都是正确的。

          【讨论】:

            猜你喜欢
            • 2015-08-13
            • 1970-01-01
            • 2016-04-19
            • 2010-10-30
            • 2022-01-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多