我是android新手,我的代码中有两个复选框和一个按钮。当单击按钮时,它应该显示正常工作的吐司,但是当选中checkbox1时,该按钮应调用另一个意图并显示toast(禁用蓝牙),当复选框2也被选中时,该按钮应该调用另一个意图点击时(如显示另一个吐司)我换句话说,如果同时选中了两个复选框,则单击按钮时应调用三个意图,希望这是明确的。
public void btd(View view) {
BluetoothAdapter blue = BluetoothAdapter.getDefaultAdapter();
blue.disable();
} (this is not required though, toast will also work)
package com.example.tutorial;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ProgressBar;
import android.widget.Toast;
public class MainActivity extends Activity {
CheckBox checkBox_one = null;
CheckBox checkBox_two = null;
CheckBox checkBox_three = null;
CheckBox checkBox_four = null;
CheckBox checkBox_five = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// SAVE CHECKBOX STATE//
checkBox_one = (CheckBox) findViewById(R.id.checkBox1);
boolean isChecked = getBooleanFromPreferences("isChecked");
Log.i("start", "" + isChecked);
checkBox_one.setChecked(isChecked);
checkBox_one.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
Log.i("boolean", "" + isChecked);
MainActivity.this.putBooleanInPreferences(isChecked,
"isChecked");
}
});
checkBox_two = (CheckBox) findViewById(R.id.checkBox2);
boolean isCheckedTwo = getBooleanFromPreferences("isCheckedTwo");
checkBox_two.setChecked(isCheckedTwo);
checkBox_two.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
MainActivity.this.putBooleanInPreferences(isChecked,
"isCheckedTwo");
}
});
}
public void putBooleanInPreferences(boolean isChecked, String key) {
SharedPreferences sharedPreferences = this
.getPreferences(Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(key, isChecked);
editor.commit();
}
public boolean getBooleanFromPreferences(String key) {
SharedPreferences sharedPreferences = this
.getPreferences(Activity.MODE_PRIVATE);
Boolean isChecked = sharedPreferences.getBoolean(key, false);
return isChecked;
}
// -------------------------//
public void optimize(View view) {
Toast toast = Toast.makeText(this, "Toast",
Toast.LENGTH_LONG);
toast.show();
}
}
我试过这个但是还不完整
if (checkBox_one.isChecked() && checkBox_two.isChecked()) {
//do something
} else if (checkBox_one.isChecked()) {
//do something
} else if (checkBox_two.isChecked()) {
//do something
答案 0 :(得分:0)
在这种情况下不要使用else if,因为只要1个语句匹配条件(结果为true)另一个 - 如果不进行测试
因此请为每个案例使用单独的if语句。
onClick(View v){
showToast(...);
if(chkButton1.isChecked){
//fo work for chk1
}
if(chkButton2.isChecked){
//fo work for chk2
}
}
http://www.visionsdeveloper.com/tutorial/java/java-decision-making.jsp
if语句从上到下执行。其中之一 condition为true,与if语句关联的语句 执行。如果条件都不是,则else语句将为真 执行,只有其中一个语句从else if语句列表执行。