Android EditText问题findviewbyId

时间:2012-07-23 22:53:00

标签: java android eclipse android-layout android-widget

将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 个答案:

答案 0 :(得分:2)

确保您的导入中没有此内容

import android.R;

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

import your.application.packagename.R;

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

编辑:

来自您的新问题,有拼写错误。 尝试将此行粘贴到onCreate()方法中:

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

答案 1 :(得分:1)

更改

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

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

percentText1是RelativeLayout的id,不适用于EditText。

答案 2 :(得分:0)

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

  android:id="@+id/myTextId"

答案 3 :(得分:0)

import tip.calculator.R; &lt; - 这就是我认为的问题