在另一个活动中动态添加视图

时间:2018-01-06 06:15:45

标签: android android-layout android-activity

当我在Android应用程序中按下另一个活动中的按钮时,我想在活动中动态添加一个开关。我还想知道是否必须在另一个布局中或者在添加它的布局中编写交换机的xml代码。提前谢谢。

2 个答案:

答案 0 :(得分:0)

您最好在要显示的活动/布局中添加开关。

可以通过在android中使用INTENT传递来管理其他活动中是否点击按钮的状态。

读取交换机要显示的活动中的意图值。

答案 1 :(得分:0)

您不能只是简单地按一个按钮并切换到另一个活动,因为每个活动都有自己的生命周期并保持活跃状态​​直到它被摧毁,变化只会反映出来&#39 ; s在前景中,所以你可以按下按钮只需设置一些标记即可启用开关然后当你登陆时如果启用了该标记,则会检查另一项活动,然后将动态切换添加添加到父版面

示例代码:添加您设置切换标志的第一个活动。

SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean(getString(R.string.switch_enable), true);
editor.commit();

您已在共享偏好中保存了一个标记,当您登陆其他活动时,只需检查此标记的值。

    public class MyActivity extends Activity {
    LinearLayout parentLayout;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        parentLayout = findViewById(R.id.llParentLayout);
        SharedPreferences sharedPref = 
        this.getPreferences(Context.MODE_PRIVATE);
        boolean switchValue = sharedPref.getBoolean(getString(R.string.switch_enable), false);
        //now draw dynamic view
       Switch newSwitch = new Switch(this);
       newSwitch.setTextOn("Switch is on");
       newSwitch.setTextOff("Switch is off");
       newSwitch.setChecked(switchValue);
       parentLayout.addView(newSwitch);
    }
}

我们将 LinearLayout 作为我们添加了切换的活动中的父级。