android – 动态创建活动

前端之家收集整理的这篇文章主要介绍了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中每个页面的布局都是相同的.

非常感谢你!!!

解决方法

@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);

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

猜你在找的Android相关文章