【问题标题】:How to get checkbox values in android studio with onCheckboxClicked如何使用 onCheckboxClicked 在 android studio 中获取复选框值
【发布时间】:2022-01-28 19:32:01
【问题描述】:

私人复选框通道;

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

    register = findViewById(R.id.btn_register);
    ch = findViewById(R.id.checkboxCh);

    register.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            JSONObject jsonObject = new JSONObject();
            RequestQueue requestQueue = Volley.newRequestQueue(RegisterActivity.this);

            try{
                jsonObject.put("ch", ch);
            }catch (JSONException exception){
                exception.printStackTrace();
            }

            JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, REGISTER_URL, jsonObject, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    System.out.println(response);
                    Toast.makeText(RegisterActivity.this, "You have registered", Toast.LENGTH_LONG).show();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    error.printStackTrace();
                    Toast.makeText(RegisterActivity.this, "An error occurred", Toast.LENGTH_SHORT).show();
                }
            });

            //add request to the requestQueue
            requestQueue.add(jsonObjectRequest);
        }
    });

}

public void onCheckboxClicked(View view){
    //Is the view now checked?
    Boolean checked = ((CheckBox) view).isChecked();

    //Check if checkbox is selected or not
    if(ch.isChecked()){
        //checked=true;
    }else{
        //checked=false;
    }
}

我正在尝试使用 JSONObject 将布尔值 onCheckBoxClicked 的真假答案发送到我的数据库。但是我在 if 语句中尝试的任何代码都是错误的。你有什么建议吗?我会欣赏它。谢谢!

【问题讨论】:

    标签: android checkbox android-volley


    【解决方案1】:

    也许你可以添加像boolean result = false;这样的新变量,然后添加

    public void onCheckboxClicked(View view){
    //Is the view now checked?
    Boolean checked = ((CheckBox) view).isChecked();
    
    //Check if checkbox is selected or not
    if(view.getId() == ch){
       result = checked;
    }
    

    }

    并且将jsonObject.put("ch", ch); 行中的更改为jsonObject.put("ch", result);

    希望能解决你的问题,谢谢

    【讨论】:

    • 感谢您的回答,但不幸的是,它再次给我一个 if 语句错误
    • 也许您可以尝试更改 view.getId() == R.id.checkboxCh 之类的语句。或变量将其带到全球范围并添加 result = false;在 onCreate
    • 现在它不会在 if 语句中给我一个错误......但也许我没有在 try catch 中以正确的方式发布布尔数据......也许是 jsonObject.put( ) 是错误的
    【解决方案2】:

    这是正确的答案,以防其他人有同样的问题......

    private CheckBox ch;
    
    private Boolean checked;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
    
    register = findViewById(R.id.btn_register);
    ch = findViewById(R.id.checkboxCh);
    
    register.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
    
            JSONObject jsonObject = new JSONObject();
            RequestQueue requestQueue = Volley.newRequestQueue(RegisterActivity.this);
    
            try{
                jsonObject.put("ch", checked);
            }catch (JSONException exception){
                exception.printStackTrace();
            }
    
            JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, REGISTER_URL, jsonObject, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    System.out.println(response);
                    Toast.makeText(RegisterActivity.this, "You have registered", Toast.LENGTH_LONG).show();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    error.printStackTrace();
                    Toast.makeText(RegisterActivity.this, "An error occurred", Toast.LENGTH_SHORT).show();
                }
            });
    
            //add request to the requestQueue
            requestQueue.add(jsonObjectRequest);
        }
    });
    
    }
    
    public void onCheckboxClicked(View view){
        //Is the view now checked?
        checked = ((CheckBox) view).isChecked();
    
    //Check if checkbox is selected or not
    if(ch.isChecked()){
        checked=true;
    }else{
        checked=false;
    }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-16
      • 2014-08-04
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 2015-11-13
      • 2011-05-27
      • 2016-02-28
      相关资源
      最近更新 更多