繁体   English   中英

在Android Studio中动态添加和保存按钮

[英]Dynamically Add and Save buttons in Android studio

目前,我设法在视图上动态创建按钮

这是我创建按钮的代码;

    public void Add_on(View v) {
        AlertDialog.Builder mbuilder = new AlertDialog.Builder(Mb.this);
        View mview = getLayoutInflater().inflate(R.layout.activity_mb1, null);
        EditText number = (EditText) mview.findViewById(R.id.etnum);
        Button Create = (Button) mview.findViewById(R.id.etcreate);
        Button Cancel = (Button) mview.findViewById(R.id.etcancel);

        Create.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view){

                if (!number.getText().toString().isEmpty())
                {
                    Toast.makeText(Mb.this, "Number can be NULL",Toast.LENGTH_SHORT).show();


                    LinearLayout yenilayout = new LinearLayout(Mb.this);
                    int n =1;
                    for(int i=0; i<n; i++)
                    {
                        Button yeniButton = new Button(Mb.this);
                        yenilayout.addView(yeniButton);

                        yeniButton.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Toast.makeText(Mb.this, "Button is working",Toast.LENGTH_SHORT).show();
                            }
                        });

                    }
                    altlayout.addView(yenilayout);


                } else {
                    Toast.makeText(Mb.this, "Number cannot be NULL",Toast.LENGTH_SHORT).show();

                }

            }
        });

但是,每当我回忆起活动时,按钮就不再存在。 所以我可以将按钮永久放置在那里吗?

谢谢你的建议

您可以使用Bundle保存活动的状态,并在onCreate()方法中重新创建它。 这适用于Activity的特定实例,因此可以用于保存有关选择或用户输入等的数据,但不能保存需要在应用程序启动期间保持不变的数据。

要使用Bundle ,请覆盖Activity类中的onSaveInstanceState(Bundle)onRestoreInstanceState(Bundle)方法。 您可以使用Bundle方法在地图中保存所需的任何数据,然后将其取回onRestoreInstanceState(Bundle) ,该方法在onStart()onStart()

不过,默认实现已经可以处理大多数UI内容,并且我认为这可以为您跟踪按钮,因此,可能是您的问题实际上是有关将一些持久性数据与应用程序相关联。 (这也意味着,如果您确实要覆盖上述方法,则应确保在实现的第一行中调用super方法)。

如果您需要在应用程序启动持久性数据,那么最快和最简单的方法是使用SharedPreferences ,看到这个答案的一个例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM