MainActivity.java:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setTitle(R.string.app_name);
setContentView(new SampleView(this));
}
}
SampleView.java:
public class SampleView extends View {
@Override
protected void onDraw(Canvas canvas) {
if (certaincondition = true) {
//add elements to canvas etc
} else {
//How do I do the below? The layout is defined in xml.
//I do not want to use Intent. Please help me
//create a layout from resource R.layout.idAbout and transfer control.
}
}
}
答案 0 :(得分:0)
使用布局inflater:
View newRootViewElement;
LayoutInflater li = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
newRootViewElement= li.inflate(R.layout.idAbout, null);
答案 1 :(得分:0)
您可以使用
来扩充布局View.inflate(getContext(), R.layout.idAbout, viewParent);
其中viewParent
是ViewParent
,它将是膨胀视图的父级(可以是null
)。
但是你想做什么?从onDraw()
开始新活动或修改视图层次结构有点奇怪。您可能希望将runnable发布到Handler
,它将在事件循环的下一个循环中执行您想要的操作。要开始新活动(例如显示应用的“关于”信息),您应该查看Intent
课程。