0

我正在创建一个 android 应用程序,其中我有一个包含 Switch、TextView 等多个元素的活动。

无论是否选中,我都需要从所有 Switch 元素中获取值。

如果有人向我展示将多个值传输到不同活动以进行进一步计算的正确方法,那就太好了。

谢谢

这是我的 XML 代码:

           <LinearLayout
                android:id="@+id/configSwitchHldr"
                android:layout_marginTop="10dp"
                android:layout_span="2"
                android:gravity="center"
                android:orientation="vertical"
                android:paddingLeft="30dp"
                android:paddingRight="30dp" >

                <TextView 
                    android:text="@string/coreHardware"
                    android:layout_width="fill_parent"
                    android:layout_height="20dp"
                    android:textColor="@color/green"
                    android:layout_marginTop="10dp"
                    android:layout_marginBottom="10dp"
                    />
                <View 
                   android:layout_width="fill_parent"
                   android:layout_height="2dp"       
                   android:background="#363636" />
                <Switch
                    android:id="@+id/switch1"
                    android:layout_width="fill_parent"
                    android:layout_height="14.5sp"
                    android:textOn="ON"
                    android:textOff="OFF"
                    android:text="CPU"              
                    android:paddingLeft="5dp"
                    android:paddingRight="5dp"
                    android:layout_marginTop="10dp"
                    android:layout_marginBottom="10dp"
                    />
                <View 
                   android:layout_width="fill_parent"
                   android:layout_height="1dp"       
                   android:background="#363636" />

                <Switch
                    android:id="@+id/switch2"
                    android:layout_width="fill_parent"
                    android:layout_height="14.5sp"
                    android:textOn="ON"
                    android:textOff="OFF"
                    android:text="Memory" 
                    android:paddingLeft="5dp"
                    android:paddingRight="5dp"
                    android:layout_marginTop="10dp"
                    android:layout_marginBottom="10dp"/>

                <View 
                   android:layout_width="fill_parent"
                   android:layout_height="1dp"       
                   android:background="#363636" />

                <Switch
                    android:id="@+id/switch3"
                    android:layout_width="fill_parent"
                    android:layout_height="14.5sp"
                    android:textOn="ON"
                    android:textOff="OFF"
                    android:text="Storage" 
                    android:paddingLeft="5dp"
                    android:paddingRight="5dp"
                    android:layout_marginTop="10dp"
                    android:layout_marginBottom="10dp"/>

                <View 
                   android:layout_width="fill_parent"
                   android:layout_height="1dp"       
                   android:background="#363636" />

            </LinearLayout>
4

1 回答 1

0

好的,所以根据您的评论,这是可以做到的:

在您的第一个Activity中,您需要一个方法,该方法收集所有开关状态并将它们传递给下一个活动。将参数传递给其他活动可以通过将它们放入Intent您发送的新活动中来实现Activity

获取Switches状态并将它们传递给新状态的方法Activity大致如下所示:

Intent i = new Intent(MainActivity.this, NewActivity.class);
i.putExtra("switch1", switch1.isChecked());
i.putExtra("switch2", switch2.isChecked());
i.putExtra("switch3", switch3.isChecked());
startActivity(i);

将其放在 onClickListener 中Button,例如:

button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent i = new Intent(MainActivity.this, NewActivity.class);
        i.putExtra("switch1", switch1.isChecked());
        i.putExtra("switch2", switch2.isChecked());
        i.putExtra("switch3", switch3.isChecked());
        startActivity(i);
    }
});

现在,当您单击 时,Button您将被发送到 NewActivity。

要检索从 MainActivity 传递的参数,您应该在 NewActivity 的 onCreate 方法中执行以下操作:

boolean bool1 = getIntent().getExtras().getBoolean("switch1");
boolean bool2 = getIntent().getExtras().getBoolean("switch2");
boolean bool3 = getIntent().getExtras().getBoolean("switch3");

您可以通过将变量放在布尔数组中来从 MainActivity 传递变量,但在我看来这太过分了。

另请查看此 SO 帖子:如何在 Android 应用程序中的活动之间传递数据?- 这些有很多。

于 2013-01-11T14:06:20.317 回答