12

我有一个像这样的 xml 布局 main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="wrap_content"
 android:layout_height="fill_parent"
 android:gravity="center" >
 <EditText      
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="text"
 android:textColor="#000"
 android:textSize="16dp"
 android:id="@+id/edtxt"
 android:gravity="center|top|left"/>     
 </RelativeLayout>

我在我的活动中这样声明

public class MyActivity extends Activity {
private TextView txt = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    txt= (TextView)findViewById(R.id.edtxt);
 }

}

但我的活动没有问题。为什么?

4

3 回答 3

13

看到这个链接http://developer.android.com/reference/android/widget/EditText.html

看看这里在此处输入图像描述

你会找到你的答案

于 2012-10-05T07:07:31.240 回答
4

那是因为 EditText 是 TextView 的子类。您正在将 EditText 转换为 TextView,因为 EditText 是 TextView,所以它可以工作。

查看 EditText 的文档:http: //developer.android.com/reference/android/widget/EditText.html

这里有一些东西可以让你了解继承,这就是这里发生的事情:http: //docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

于 2012-10-05T07:06:48.253 回答
2

答案很简单,之所以如此,是因为EditTextextends TextView

于 2012-10-05T07:06:42.757 回答