我现在在app上工作,我想做以下事情:
- The user creates a new page (new activity and xml layout).
- Saving the user’s page to database.
- Adding the page to ListView as an item,and launch it when the user
会点击它
在ListView上.
我在这里看到很多关于“动态创建活动”的答案,我明白了
不可能,所以我不知道该怎么做.
用户可以创建的页面数量是无限的,因此必须动态完成.
ListView中每个页面的布局都是相同的.
非常感谢你!!!
解决方法
@H_404_26@ 实际上,没有办法动态创建新活动.但您可以创建同一活动的多个实例.这需要将您的活动的launchMode设置为“standard”或“singleTop”.
此外,您可以使用初始化标志让每个实例使用自己的特定布局,从而创建与多个活动完全相同的用户体验:
Intent intent = new Intent(this,MyDynamicActivity.class); Bundle b = new Bundle(); b.putInt("LayoutIndex",mode); intent.putExtras(b); startActivity(intent);
活动:
class MyDynamicActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle b = getIntent().getExtras(); int layoutIndex = b.getInt("LayoutIndex"); // and here populate the activity differently based on layoutIndex value } }
但是,如何动态填充活动的不同实例?
嗯,没有简单的方法.例如,您无法创建特定的XML布局文件并将其存储在其中
文件系统,因为XML布局必须以特定格式编译才能由Android加载.
您唯一能做的就是从Java代码中按照规则动态设置布局小部件
由用户设置.下面是Java布局生成代码的示例:
LinearLayout layout = new LinearLayout(this); layout.setGravity(Gravity.CENTER); LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); Button button = new Button(this); button.setText("My Button"); layout.addView(button,params); setContentView(layout);
毫无疑问,创建这样一个动态机制将会有很多工作.