0

我从教程中复制粘贴了所有内容,其中 3 个保存了,但发生了奇怪的事情。

它说我的Chronometer和按钮无法解析或不是一个字段。

秒表.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 回答