0

チュートリアルからすべてをコピーして貼り付け、そのうちの 3 つを保存しましたが、奇妙なことが起こりました。

Chronometerのボタンは解決できないか、フィールドではないと言われました。

StopWatch.java

package com.example.stopwatch2;

import android.os.Bundle;
import android.os.SystemClock;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;

public class StopWatch extends Activity {
    Chronometer mChronometer;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_stop_watch);Button button;

        mChronometer = (Chronometer) findViewById(R.id.chronometer);

        // Watch for button clicks.
        button = (Button) findViewById(R.id.start);
        button.setOnClickListener(mStartListener);

        button = (Button) findViewById(R.id.stop);
        button.setOnClickListener(mStopListener);

        button = (Button) findViewById(R.id.reset);
        button.setOnClickListener(mResetListener);

    }

    View.OnClickListener mStartListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.start();
        }
    };

    View.OnClickListener mStopListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.stop();
        }
    };

    View.OnClickListener mResetListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.setBase(SystemClock.elapsedRealtime());
        }
    };


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_stop_watch, menu);
        return true;
    }
}

activity_stop_watch.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="4dip"
    xmlns:tools="http://schemas.android.com/tools"
    android:gravity="center_horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <Chronometer android:id="@+id/chronometer"
        android:format="@string/chronometer_initial_format"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:paddingBottom="30dip"
        android:paddingTop="30dip"
        />

    <Button android:id="@+id/start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Start">
        <requestFocus />
    </Button>

    <Button android:id="@+id/stop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Stop">
    </Button>

    <Button android:id="@+id/reset"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Reset">
    </Button>

</LinearLayout>

文字列.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="hello">Hello World, StopWatch!</string>
    <string name="app_name">StopWatch</string>
    <string name="chronometer_initial_format">Initial format:<xliff:g id="initial-format">%</xliff:g></string>

</resources>

ここで何が間違っているのか誰にも教えてもらえますか?

4

1 に答える 1

0

プロジェクトをクリーニングしてみてください。プロジェクトを右クリックして、「クリーン」と言います。次に、アプリをもう一度実行してみてください。

また、別のヒント。すべてのボタンに同じ変数名を使用しないでください。次のように異なる名前を使用します。

// Watch for button clicks.
        buttonStart = (Button) findViewById(R.id.start);
        button.setOnClickListener(mStartListener);

        buttonStop = (Button) findViewById(R.id.stop);
        button.setOnClickListener(mStopListener);

        buttonReset = (Button) findViewById(R.id.reset);
        button.setOnClickListener(mResetListener);

長期的には、コードの管理とデバッグが容易になります。

于 2012-10-10T13:07:00.493 に答える