在Android中将EditText声明为TextView

时间:2012-10-05 07:04:08

标签: android android-edittext textview

我有像这样的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);
 }

}

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

3 个答案:

答案 0 :(得分:13)

请参阅此链接http://developer.android.com/reference/android/widget/EditText.html

并查看enter image description here

你会找到答案

答案 1 :(得分: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

答案 2 :(得分:2)

答案很简单,因为EditText扩展了TextView