从自定义布局创建xml布局。可能吗?
问题描述:
MainActivity.java:从自定义布局创建xml布局。可能吗?
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.
}
}
}
答
使用吹气布局:
View newRootViewElement;
LayoutInflater li = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
newRootViewElement= li.inflate(R.layout.idAbout, null);
答
可以膨胀的布局使用
View.inflate(getContext(), R.layout.idAbout, viewParent);
其中viewParent
是一个ViewParent
,它将是充气视图的父级(可以是null
)。
但是你想要做什么?从onDraw()
开始新的活动或修改视图层次结构有点奇怪。您可能想要将可运行的帖子发布到Handler
,它将在事件循环的下一个循环中执行您想要的操作。要开始一项新活动(例如显示“关于该应用的”信息),您应该查看Intent
课程。
实际问题在这里描述http://*.com/questions/4926478/why-does-the-menu-button-in-the-emulator-show-all-the-activities-of-my-app 。因为我无法修复它:作为解决方法,我正在尝试为所有视图使用相同的活动。 – hsbgowd 2011-02-07 21:06:06