EditText Android无法通过id创建对象

时间:2014-02-10 18:23:07

标签: android

我正在尝试访问框中的editText ...我正在尝试为它创建一个对象,但由于某种原因它无法正常工作,我真的很新Android,所以它有点令人困惑对我来说。

package com.example.myfirstapp;

import android.os.Bundle;
import android.app.Activity;
import android.text.TextWatcher;
import android.widget.EditText;


public class MainActivity extends Activity {

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

        EditText txt = new (EditText) findViewByID(R.id.editText1);

    }

}

这是XML

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:ems="10"
    android:inputType="numberPassword" >

    <requestFocus />
</EditText>

我在new上收到语法错误,findViewByID类型MainActivity的方法未定义

2 个答案:

答案 0 :(得分:5)

只需删除new

即可
EditText txt = (EditText) findViewById(R.id.editText1);

这实际上是强制转换,这意味着您告诉编译器findViewById返回的对象不仅是View,而且声明该方法返回,但View的特定子类称为EditText

此行实际上并未创建新的View,而是通过调用View从您设置的Activity内容视图中选择setContentView()

您传递的ID作为函数的参数用于标识您希望从内容视图中选择的View

答案 1 :(得分:2)

试试这个。

EditText txt = (EditText) findViewByID(R.id.editText1);