如何从一个活动动态创建按钮到另一个活动

时间:2015-04-23 05:56:58

标签: android button dynamically-generated

我正在创建一个包含动态添加按钮的Android应用程序。当我在一个活动中单击按钮时,按钮将动态创建另一个活动。是否可以在单击一个活动中的按钮时创建按钮,然后在另一个活动中创建一个按钮。请帮助我。

package com.example.dynamicbutton;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

    Button Add_Button;
    Activity_2 act_child;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Add_Button = (Button)findViewById(R.id.button_add);
        Add_Button.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {


                Intent invisible = new Intent(MainActivity.this,Activity_2.class);
                startActivity(invisible);
                act_child.visible.setVisibility(View.GONE);

            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

2 个答案:

答案 0 :(得分:1)

解决方案很简单。请在第一个活动中关注。 如果单击按钮,请使用以下内容。

Intent invisible = new Intent(MainActivity.this,Activity_2.class);
//here add this line
.putExtra("visibility", "1");
                startActivity(invisible);

其他

Intent invisible = new Intent(MainActivity.this,Activity_2.class);
    //here add this line
    .putExtra("visibility", "0");
                    startActivity(invisible);

在你的第二个活动中:

String visibility = getIntent().getStringExtra("visibility");
if (visibility.equals("1")){
 act_child.visible.setVisibility(View.VISIBLE);
}else{
 act_child.visible.setVisibility(View.GONE);
}

答案 1 :(得分:1)

不要公开变量。将您的设计更改为

1]将一些变量传递给Second Activity。 (在按钮中单击第一个活动)。

2]获取Second Activty&中的变量改变Button的可见性(根据该变量在第二个活动中)

Intent i = new Intent(CurrentActivity.this,SecondActivity.class);
i.putExtra("flag","show");
startActivity(i);


Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getString("flag");
    if(value.equals("show")){
button1.setVisible(View.Visible);  
}
else{
button1.setVisible(View.Gone);
}