从XML文件中的其他元素列表中过滤掉一些Switch元素

时间:2013-01-09 22:09:15

标签: android traversal

我正在创建一个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>

1 个答案:

答案 0 :(得分: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);

将其放在on Button的onClickListener中,例如:

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帖子:How do I pass data between Activities in Android application? - 其中有很多。