2013-04-30 3 views
0

Я пытаюсь получить простую кнопку, чтобы работать, чтобы перемещаться между экранами, я действительно не уверен, что я сделал не так, как я последовал за гидом!Почему моя кнопка Android не работает?

Первый код страницы:

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); 
} } 

Manifest:

<?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); 
} } 

Пожалуйста, помогите!

Спасибо!

+0

Попробуйте удалить; перед новым в aButton.setOnClickListener ({; new OnClickListener(); -> aButton.setOnClickListener ({new OnClickListener(); –

ответ

0

Возможно, проблема связана с вашим методом onCreate. Вы закрываете onCreate с помощью}, а затем пытаетесь найти кнопку через findViewById. Поскольку это не содержится в методе, он никогда не вызывается. Попробуйте что-то вроде этого:

@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); 
    }); 
} 
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); 
     } 
    }); 
} 
0

Ваши MainActivity блоки имеют серьезные проблемы: о

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); 
      } 
     }); 
    } 
} 
0

в OnCreate() вашего MainActivity проблема. Это должно выглядеть так.

@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 имеет кнопку с

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

Прежде всего вам не нужно писать это перед 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); 
     }); 
    } 
} 

Остальная вещь верна.

Смежные вопросы