1

これは、コードを使用した最初のAndroidアプリであるため、非常に単純なものであると確信しています(hello worldの例では、XMLの文字列に値を割り当てるだけでした)。私の問題は、変数でボタンの参照を取得しようとしたときに、R.idのようなIDが定義されていないことです。

コンパイラエラーは、以下のコードのコメントにあります。

package com.geeksonhugs.simplecalc;

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;

public class MainActivity extends Activity
{
    private Button AddButton;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        AddButton = (Button)findViewById(R.id.btnAdd);
//"Unknown member 'id' of 'com.geeksonhugs.simplecalc.R'"

        //AddButton.setOnClickListener(this);

    }   

}

XMLレイアウトファイル:

<?xml version='1.0' encoding='utf-8' ?>
<LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LayoutRoot" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:orientation="vertical">

<TextView 
    android:id="@+id/txtFirstNum" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:text="@string/strFirstNum" />

<EditText 
    android:id="@+id/edtFirstNum" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:text="" />

<TextView 
    android:id="@+id/txtSecondNum" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:text="@string/strSecondNum" />

<EditText 
    android:id="@+id/edtSecondNum" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:text="" />

<Button 
    android:id="@+id/btnAdd" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:text="@string/strAdd" 
    android:gravity="center" />

<TextView 
    android:id="@+id/txtResult" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:text="" />

</LinearLayout>
4

5 に答える 5

2

binフォルダーを削除し、AIDEアプリを使用して再コンパイルすることで、問題を解決しました。

于 2013-01-28T06:30:49.927 に答える
1

このRクラスは、プロジェクトをビルドするときにAndroidビルドツールによってコード生成されます。これは、4つの可能性があることを意味します。

  1. プロジェクトのビルドはまだ試していません。その場合は、試してみてください。

  2. Eclipseは、何らかの理由でプロジェクトをビルドする必要があるとは考えていません。Eclipseメニューから[Project]> [Clean]を試してください(もちろん、Eclipseを使用している場合にのみ関係します)。

  3. マニフェストまたはリソースの1つに、ビルドを妨げているバグがありますR。このためのEclipseエラーインジケーターがあるはずです。

  4. android:idレイアウトに属性がないため、使用できませんR.id

于 2012-04-18T23:04:40.323 に答える
1

貼り付けたxmlファイルがmain.xmlと呼ばれ、レイアウトフォルダの下にあることを確認してください。そして、Rファイルの生成を再試行してください。それが役立つかもしれません。

于 2012-04-18T23:16:40.887 に答える
1

IDの参照に問題があるAIDEを使用している場合は、binフォルダーにある「genフォルダー」を削除して再コンパイルしてみてください。問題は、R.javaクラスがIdというコンストラクターを作成しなかったことです。したがって、R.javaクラスを含むgenフォルダーを削除して再コンパイルすると、この問題は解決します。

于 2016-03-16T11:50:29.210 に答える
0

XMLファイルのコンポーネントにidを追加する必要があります。このような:

android:id="@+id/buton1"

ここで、mainActivity.javaをクリックして、コード「R.id」を記述できます。「buton1」を書くためのヒントが表示され、「id」のエラーはありません

于 2019-04-01T16:06:16.510 に答える