当前位置: 首页 > 知识库问答 >
问题:

字符串不能转换为布尔错误

丌官翰采
2023-03-14
public class RegisterActivity extends AppCompatActivity {

private ArrayAdapter adapter;
private Spinner spinner;
private String userID;
private String userPassword;
private String userGender;
private String userMajor;
private String userEmail;
private AlertDialog dialog;
private boolean validate = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);

    spinner = (Spinner) findViewById(R.id.majorSpinner);
    adapter = ArrayAdapter.createFromResource(this, R.array.major, android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    final EditText idText = (EditText) findViewById(R.id.idText);
    final EditText passwordText = (EditText) findViewById(R.id.passwordText);
    final EditText emailText = (EditText) findViewById(R.id.emailText);

    RadioGroup genderGroup = (RadioGroup) findViewById(R.id.genderGroup);
    int genderGroupID = genderGroup.getCheckedRadioButtonId();
    userGender = ((RadioButton) findViewById(genderGroupID)).getText().toString();

    genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int i) {

            RadioButton genderButton = (RadioButton) findViewById(i);
            userGender = genderButton.getText().toString();

        }
    });

    final Button validateButton = (Button) findViewById(R.id.validateButton);
    validateButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            String userID = idText.getText().toString();
            if(validate)
            {
                return;
            }
            if(userID.equals(""))
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                dialog = builder.setMessage("아이디는 빈 칸일 수 없습니다.")
                        .setPositiveButton("확인", null)
                        .create();
                dialog.show();
                return;
            }

            Response.Listener<String> responseListener = new Response.Listener<String>(){

                @Override
                public void onResponse(String response){
                    try
                    {
                        JSONObject jsonResponse = new JSONObject(response);
                        boolean success = jsonResponse.getBoolean("success");
                        if(success)
                        {
                            AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                            dialog = builder.setMessage("사용할 수 있는 아이디 입니다.")
                                    .setPositiveButton("확인", null)
                                    .create();
                            dialog.show();
                            idText.setEnabled(false);
                            validate = true;
                            idText.setBackgroundColor(getResources(). getColor(R.color.colorGray));
                            validateButton.setBackgroundColor(getResources(). getColor(R.color.colorGray));
                    }
                    else{
                            AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                            dialog = builder.setMessage("사용할 수 없는 아이디 입니다.")
                                    .setNegativeButton("확인", null)
                                    .create();
                            dialog.show();
                        }
                    }
                    catch (Exception e)
                    {
                        e.printStackTrace();
                    }

                }
            };
            ValidateRequest validateRequest = new ValidateRequest(userID, responseListener);
            RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);
            queue.add(validateRequest);
        }
    });

    Button registerButton = (Button) findViewById(R.id.registerButton);
    registerButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String userID = idText.getText().toString();
            String userPassword = passwordText.getText().toString();
            String userMajor = spinner.getSelectedItem().toString();
            String userEmail = emailText.getText().toString();


            if(!validate){

                AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                dialog = builder.setMessage("먼저 중복 체크를 해주세요.")
                        .setNegativeButton("확인", null)
                        .create();
                dialog.show();
                return;

            }

            if(userID.equals("") || userPassword.equals("") || userMajor.equals("") || userEmail.equals("") || userGender.equals("")){
                AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                dialog = builder.setMessage("빈 칸 없이 입력해주세요.")
                        .setNegativeButton("확인", null)
                        .create();
                dialog.show();
                return;

            }

            Response.Listener<String> responseListener = new Response.Listener<String>(){   #########Error here

                @Override
              public void onResponse(String response){  #########Error here
                    try
                    {
                        JSONObject jsonResponse = new JSONObject(response);
                        boolean success = jsonResponse.getBoolean("success");
                        if(success)
                        {
                            AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                            dialog = builder.setMessage("회원 등록이 성공했습니다.")
                                    .setPositiveButton("확인", null)
                                    .create();
                            dialog.show();
                            finish();

                        }
                        else {
                            AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                            dialog = builder.setMessage("회원 등록에 실패했습니다.")
                                    .setNegativeButton("확인", null)
                                    .create();
                            dialog.show();
                        }
                    }
                    catch (JSONException e)
                    {
                        e.printStackTrace();
                       // Toast.makeText(getApplicationContext(), "error",
                        //        Toast.LENGTH_SHORT).show();
                    }

                }
            };
            RegisterRequest registerRequest = new RegisterRequest(userID, userPassword, userGender, userMajor, userEmail, responseListener);
            RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);
            queue.add(registerRequest);

        }
    });

}

@Override
protected void onStop(){
    super.onStop();
    if(dialog !=null)
    {
        dialog.dismiss();
        dialog = null;
    }
}

}

共有1个答案

丌官炎彬
2023-03-14


org.json.jsonException:java.lang.String类型成功时的值ture

关键字(success)持有一个不是布尔值的ture值,相反,它应该是true。因此,json在将其转换为布尔值时遇到了一些问题。

这个问题出在webservice端,您在webservice中错误地返回了ture(不是true),所以请在那里进行更改。

 类似资料:
  • 以便他们可以重新键入他们想要保存的名称,如果他们在开始时犯了错误。 但我仍然面临“错误:不兼容类型:字符串不能转换为布尔值”的问题。

  • 问题内容: 我有一个布尔变量,我想将其转换为字符串: 我需要转换后的值的格式为:,而不是 我试过了: 但是它告诉我,并且不是公认的功能。 如何将此布尔值转换为PHP 或PHP 格式的字符串? 问题答案: 最简单的解决方案:

  • 问题内容: 如何将字符串转换为? 它返回 布尔值true 但这应该是。 问题答案: 除非字符串的值被PHP视为“空”(从的文档中获取),否则字符串始终为布尔值true : (一个空字符串); (0作为字符串) 如果您需要根据字符串的文本值设置布尔值,则需要检查该值是否存在。 编辑:上面的代码旨在使理解更加清晰。在实际使用中,以下代码可能更合适: 或者使用该功能可能会覆盖更多的布尔值: 覆盖整个范围

  • 结果: Main.java:22:错误:不兼容的类型:字符串不能转换为T返回Y;其中T是类型变量:T扩展类Vehicle 1错误中声明的字符串

  • 我有一个值,它将是四件事之一:布尔true、布尔false、字符串“true”或字符串“false”。如果字符串是字符串,我想将字符串转换为布尔值,否则不修改它。换句话说: “true”应该变为true “false”应变为false 真实应该保持真实 false应保持为false

  • 我的代码有一个错误。 我的适配器类: 我的班级: