新建包为 com.example.button 的工程;
MainActivity.java 内容:
package com.example.button; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myView my = (myView)findViewById(R.id.my_xml_view); my.setText("hello_android!"); } }
// myView.java 内容:
package com.example.button; import android.content.Context; import android.util.AttributeSet; import android.widget.TextView; // 如果该类被用该 xml 内,必须覆盖完基类所有的构造函数,不然秒退!! public class myView extends TextView { public myView(Context context) { super(context); } public myView(Context context,AttributeSet attrs) { super(context,attrs); } public myView(Context context,AttributeSet attrs,int defStyle) { super(context,attrs,defStyle); } }
<?xml version="1.0" encoding="utf-8"?> <!-- 该 xml 对应的 myView 必须覆盖基类的所有构造函数!!不然 秒退!! --> <com.example.button.myView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_xml_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:textSize="44sp" android:textStyle="bold" android:textColor="#ee1111" />