android – 动态创建活动

我现在在app上工作,我想做以下事情:
  1. The user creates a new page (new activity and xml layout).
  2. Saving the user’s page to database.
  3. Adding the page to ListView as an item,and launch it when the user

会点击它
在ListView上.

我在这里看到很多关于“动态创建活动”的答案,我明白了
不可能,所以我不知道该怎么做.

用户可以创建的页面数量是无限的,因此必须动态完成.
ListView中每个页面的布局都是相同的.

非常感谢你!!!

解决方法

实际上,没有办法动态创建新活动.

但您可以创建同一活动的多个实例.这需要将您的活动的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);

毫无疑问,创建这样一个动态机制将会有很多工作.

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...