我正在创建一个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>
答案 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? - 其中有很多。