2

マニュアル(いくつかのバグがあり、修正しました)に従おうとしていますが、このエラーが発生btstart cannot be resolved or is not a fieldし、修正方法がわかりません。そのマニュアルへのリンクは次のとおりです (ただし、レイアウトと文字列 xml ファイルを変更しました) MainActivity.java コードは次のとおりです。

 package com.example.stopwatch;
//import com.example.stopwatch.R;
import android.R;
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;

public class MainActivity extends Activity implements OnClickListener {
    private Button start;
    private Button stop;
    private Button reset;

    private Chronometer mydChronometer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        uI();
    }

    public void uI() {
        start = (Button) findViewById(R.id.btstart);
        start.setOnClickListener(this);
        stop = (Button) findViewById(R.id.btstop);
        stop.setOnClickListener(this);
        reset = (Button) findViewById(R.id.btreset);
        reset.setOnClickListener(this);
        mydChronometer = (Chronometer) findViewById(R.id.chronometer1);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void onClick(View v) {
        if (v == start) {
            mydChronometer.start();

        } else if (v == stop) {

            mydChronometer.stop();
        } else if (v== reset) {
            mydChronometer.setBase(SystemClock.elapsedRealtime());

        }

    }

}

ここに私の「activity_main.xml」があります:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/chronometer1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="67dp"
        android:src="@drawable/myd" />

    <Chronometer
        android:id="@+id/chronometer1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="28dp"
        android:gravity="center"
        android:text="Chronometer"
        android:textSize="35dp" />

    <Button
        android:id="@+id/btstart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/imageView1"
        android:layout_below="@+id/chronometer1"
        android:layout_marginTop="18dp"
        android:text="@string/start" />

    <Button
        android:id="@+id/btreset"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/btstop"
        android:layout_alignBottom="@+id/btstop"
        android:layout_toRightOf="@+id/btstop"
        android:text="@string/reset" />

    <Button
        android:id="@+id/btstop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/btstart"
        android:layout_alignBottom="@+id/btstart"
        android:layout_toRightOf="@+id/btstart"
        android:text="@string/stop" />

</RelativeLayout>

「strings.xml」ファイルは次のとおりです。

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">stopwatch</string>
    <string name="btn1">Start</string>
    <string name="btn2">Stop</string>
    <string name="btn3">Reset</string>
    <string name="menu_settings">Settings</string>
    <string name="action_settings">Settings</string>

</resources>

私は main.xml に変更を加えていません。これが私の main.xml です。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>

</menu>

不足しているものと、このエラーの修正方法を教えてください。

PS: 次の行で同様のエラーが発生します。

btstop cannot be resolved or is not a field in stop = (Button) findViewById(R.id.btstop);
btreset cannot be resolved or is not a field in reset = (Button) findViewById(R.id.btreset);
chronometer1 cannot be resolved or is not a field in mydChronometer = (Chronometer) findViewById(R.id.chronometer1);

ありがとうございます。

4

3 に答える 3

0

この「id を解決できないか、フィールドではありません」というエラーが表示されますか? それはあなたを助けるかもしれません。

android .R をインポートしているかどうかを確認してください

それがエラーかもしれません

于 2013-09-10T00:55:05.830 に答える
0

R が解決されないのは、R.java ファイルが自動的に生成されないためです。

R.java自動生成はリソース フォルダーに基づいているため、リソース フォルダーでエラーを確認します。私の場合、AndroidManifest.xmlファイルで、次のいずれかの行を変更する必要がありました。

<application android:icon="@drawable/*icon"* android:label="@string/app_name">

<application android:icon="@drawable/*ic_launcher"* android:label="@string/app_name">

(つまり、リソース (res) フォルダー内の.pngファイル@drawable/iconの名前に変更します。

于 2014-03-20T06:43:11.230 に答える