0

为少数编辑文本分配 id 会导致以下错误:

the error is in the parameters of findViewById token

这是它所在的代码行

final EditText myEditField = (EditText) findViewById(R.id.percentText1);

...这是 Xml 代码,再次对发布 java 的书呆子感到抱歉...

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/percentText1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/enterButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="224dp"
        android:onClick="onEnterClick"
        android:text="Calculate Tip" />

    <EditText
        android:id="@+id/percentText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="53dp"
        android:ems="10"
        android:singleLine="true"
        android:text="Percent" />

    <EditText
        android:id="@+id/percentage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/percentText"
        android:layout_alignParentTop="true"
        android:ems="10"
        android:singleLine="true"
        android:text="Bill Amount" >

        <requestFocus />
    </EditText>

</RelativeLayout>

...Java代码...我认为的错误是我不正确地给编辑文本一个id ...

package tip.calculator;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import tip.calculator.R;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EditText myEditField = (EditText) findViewById(R.id.percentText); //error here 


    }

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

    public void onEnterClick(String args []){


        int percentage;
        int percentageInp;
        int billAmount;
    }


}
4

4 回答 4

2

确保你的导入中没有这个

import android.R;

Eclipse 有时会导入这个类,而应该是

import your.application.packagename.R;

通常在我们ctrl+shft+o修复导入时会发生这种情况。当我们这样做时, Eclipse 会添加R该类。:)

编辑:

从你的新问题来看,有一个拼写错误。尝试将此行粘贴到 onCreate() 方法中:

EditText myEditField = (EditText) findViewById(R.id.percentText);
于 2012-07-23T22:57:57.983 回答
1

改变

final EditText myEditField = (EditText) findViewById(R.id.percentText1);

final EditText myEditField = (EditText) findViewById(R.id.percentText);

percentText1 是 RelativeLayout 的 id,而不是 EditText 的 id。

于 2012-07-23T23:22:59.837 回答
0

导入tip.calculator.R;<-这就是我认为的问题

于 2014-04-25T02:39:15.237 回答
0

您需要了解的是,如果资源有任何问题,那么在任何地方都无济于事。那么检查资源文件夹中是否有任何错误?是否列出了任何问题?然后尝试找到其中一个按钮,将其他所有内容注释掉。在解决所有布局错误之前,您将找不到任何东西。然后只需确保您像这样声明 id

  android:id="@+id/myTextId"
于 2012-07-23T23:10:20.287 回答