Подтвердить что ты не робот

Объявлять EditText как TextView в Android

У меня есть xml layout 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);
 }

}

но у меня нет проблем в моей деятельности. почему?

4b9b3361

Ответ 2

Это было бы потому, что EditText является подклассом TextView. Вы меняете EditText в TextView, который работает, потому что EditText IS TextView.

Ознакомьтесь с документами EditText: http://developer.android.com/reference/android/widget/EditText.html

И вот кое-что, чтобы вы могли узнать о наследовании, что происходит здесь: http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

Ответ 3

Ответ прост, это потому, что EditText extends TextView.