0

私はHello Androidの本を読んでいます.Eclipseで本からコードを書いていますが、ボタンが機能していません. 何故ですか?

数独/src/org.example.sudoku/数独.java

package org.example.sudoku;

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

public class Sudoku extends Activity implements OnClickListener {
private static final String TAG = "Sudoku";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Set up click listeners for all the buttons
    View continueButton = findViewById(R.id.continue_button);
    continueButton.setOnClickListener(this);
    View newButton = findViewById(R.id.new_button);
    newButton.setOnClickListener(this);
    View aboutButton = findViewById(R.id.about_button);
    aboutButton.setOnClickListener(this);
    View exitButton = findViewById(R.id.exit_button);
    exitButton.setOnClickListener(this);
 }



 // ...
 public void onClick(View v) {
     switch (v.getId()) {
     case R.id.about_button:
         Intent i = new Intent(this, About.class);
         startActivity(i);
         break;
     // More buttons go here (if any) ...

     }
  }
}

数独/src/org.example.sudoku/About.java

package org.example.sudoku;

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

public class About extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.about);
}
 }

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.example.sudoku"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
             android:name=".MainActivity"
             android:label="@string/title_activity_main" >
             <intent-filter>
                  <action android:name="android.intent.action.MAIN" />

                  <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
        </activity>
        <activity android:name=".About"
            android:label="@string/about_label">     
        </activity>            

    </application>

 </manifest>

[バージョン情報] ボタンをクリックしましたが、機能せず、アクティビティも実行されません。プログラムの別のファイルが必要な場合は、教えてください。私を助けてください。ありがとうございました。

4

4 に答える 4

0

Buttonクラス固有を使用してみてください。

Button aboutButton = (Button) findViewById(R.id.about_button);
aboutButton.setOnClickListener(this);
于 2012-09-01T12:26:49.030 に答える
0

まず、すべてのビューをボタンに変更します

Button continueButton = (Button) findViewById(R.id.continue_button);

AND SECONDクリックイベントのアクティビティのコンテキストを次のように取得します

public void onClick(View v) {
     switch (v.getId()) {
     case R.id.about_button:
         Intent i = new Intent(Sudoku.this, About.class);
    /////////       change here ^^^^^^^^^^^     
         startActivity(i);
         break;
     // More buttons go here (if any) ...

     }
 }
于 2012-09-01T12:29:44.397 に答える
0

これを試して。マニフェストファイルに書いた MainActivity を Sudoku に変更してください。

このエラーの場合、View から Button に変換できません

ビューをボタンにキャストする必要があります。

Button aboutButton  = (Button)findViewById(android.R.id.aboutButton );
于 2012-09-01T12:13:46.847 に答える
0

activity_main.xml ファイルで、ボタンを宣言する必要があります。

<Button
    android:id="@+id/about_button"
    android:layout_width="319dp"
    android:layout_height="wrap_content"
    android:text="About" />

次に、クラス sudoku.java で、

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Set up click listeners for all the buttons

    Button aboutButton = (Button) findViewById(R.id.about_button);
    aboutButton.setOnClickListener(new View.OnClickListener() 
{
            @Override
            public void onClick(View v) 
            {
                            //Code for whatever you want to perform on this button click
                        }
 }
于 2012-09-03T07:52:08.623 に答える