Android 使用方法初始化视图
我想知道是否有可能在类中创建一个方法来初始化我的所有视图 我试过了,但没用:Android 使用方法初始化视图,android,view,initialization,Android,View,Initialization,我想知道是否有可能在类中创建一个方法来初始化我的所有视图 我试过了,但没用: public class MyInitialize extends View{ public MyInitialize(Context context) { super(context); } public void iniViewByID(View view[], int id[]){ for(int x=0; x<view.length; x+
public class MyInitialize extends View{
public MyInitialize(Context context) {
super(context);
}
public void iniViewByID(View view[], int id[]){
for(int x=0; x<view.length; x++){
view[x] = findViewById(id[x]);
}
}
但这对我不起作用,所以我不知道这是否是不可能的
但这对我不起作用,所以我不知道这是否是不可能的
编辑:
MyInitialize.java
public class MyInitialize extends View {
public MyInitialize(Context context) {
super(context);
}
public View[] iniViewByID(Context mContext, View view[], int id[]) {
for (int x = 0; x < view.length; x++) {
view[x] = ((Activity)mContext).findViewById(id[x]);
}
return view;
}
}
不需要创建另一个类来初始化视图。只需在MainActivity类中创建一个函数,并在onCreate方法中调用该函数。然后在创建的函数中初始化视图
您还可以检查API以轻松初始化视图。只有在同一活动中创建了该方法时,它才会这样工作,如果我创建了一个单独的类,那么它将永远不会工作。您可以尝试它,我将更新我的帖子。是否要从其他活动访问这些视图?否,我只想创建一个单独的类,其中包括这些方法,以使我的onCreate更干净检查我的更新,您需要指定哪个
上下文:)哇,有趣的是,我首先创建了一个mContext,然后我忘了使用它,然后从我的类中删除了它lol,谢谢保罗,回答得好!
public class MyInitialize extends View {
public MyInitialize(Context context) {
super(context);
}
public View[] iniViewByID(Context mContext, View view[], int id[]) {
for (int x = 0; x < view.length; x++) {
view[x] = ((Activity)mContext).findViewById(id[x]);
}
return view;
}
}
TextView txtview = null;
Button btn = null;
int myIDs[] = new int[]{R.id.btn, R.id.txtview};
View myViews[] = new MyInitialize(this).iniViewByID(this, new View[]{btn, txtview}, myIDs);
((Button) myViews[0]).setText("Worked");
((TextView) myViews[1]).setText("Worked");