初始化在一个类或活动中的不同活动中使用的公共UI元素

时间:2012-10-04 13:37:00

标签: android android-layout

我有几个EditText和TextView,它们在我的应用程序中的不同布局和活动中使用,并且必须在每个相应的类中初始化所有这些。我已经使用<include>标记进行布局。 我正在寻找的是我可以有一个类,我可以初始化所有这些常见的视图并设置一些所需的属性,并在所有其他类中使用此方法。

1 个答案:

答案 0 :(得分:1)

Craete new Class CustomTextView.java

public class CustomTextView extends TextView {

    Context mContext;

    public CustomTextView(Context context,AttributeSet attrs){
        super(context,attrs);
        init(context);
    }
    public CustomTextView(Context context) {
        super(context);
        init(context);  
    }

    private void init(Context context){
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        if(inflater != null){       
            LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.custom_text_view, new LinearLayout(context));

            mContext = context;


            // set any TextView attribute here...
            this.setText("hello!!!");
        }
    }
}

然后调用新的CustomTextView(this),或将其包含在xml中。

custom_text_view.xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >    
</TextView>