java - 如何在ArrayList中存储选定的复选框值

标签 java android arraylist checkbox

我想将选定的复选框值存储在ArrayList中。有五个复选框,如果我选择三个,那么它们将存储在ArrayList上。我使用了String []ad = new String[5];它写在不存储checkbox的值

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
List<String> mList = new ArrayList<>();
CheckBox android, java, python, php, unity3D;
Button submitButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    android = (CheckBox) findViewById(R.id.androidCheckBox);
    android.setOnClickListener(this);
    java = (CheckBox) findViewById(R.id.javaCheckBox);
    java.setOnClickListener(this);
    python = (CheckBox) findViewById(R.id.pythonCheckBox);
    python.setOnClickListener(this);
    php = (CheckBox) findViewById(R.id.phpCheckBox);
    php.setOnClickListener(this);
    unity3D = (CheckBox) findViewById(R.id.unityCheckBox);
    unity3D.setOnClickListener(this);

    submitButton = (Button) findViewById(R.id.submitButton);
    submitButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.e("ArrayList Values*******",mList.toString());
        }
    });

}

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.androidCheckBox:
            if (android.isChecked()) {
                mList.add(String.valueOf(android.getText()));
                Log.e("Android*******",mList.toString());
            }
            break;

        case R.id.javaCheckBox:
            if (java.isChecked()) {
                mList.add(String.valueOf(java.getText()));
                Log.e("Java*******",mList.toString());
            }
            break;

        case R.id.phpCheckBox:
            if (php.isChecked()) {
                mList.add(String.valueOf(php.getText()));
                Log.e("PHP*******",mList.toString());
            }
            break;

        case R.id.pythonCheckBox:
            if (python.isChecked()){
                mList.add(String.valueOf(python.getText()));
                Log.e("Python*******",mList.toString());
            }
            break;

        case R.id.unityCheckBox:
            if (unity3D.isChecked()){
                mList.add(String.valueOf(unity3D.getText()));
                Log.e("Unity*******",mList.toString());
            }
            break;
      }
    }
  }

最佳答案

只需创建一个列表并在点击事件触发时添加值即可:

final List<String> mList = new ArrayList<>();
mList.add("Your value");

注意:考虑实现 onCheckChangeListener 而不是 onClickListener 来处理您的复选框选择事件。

关于java - 如何在ArrayList中存储选定的复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45936775/

相关文章:

android - 当我尝试导航时,我的应用程序崩溃了,似乎找不到问题

JAVA:Hashmap - 返回字符串数组列表

java - GlassFish v3 上的 Wicket 口

java - Collections.shuffle() 真的足够随机吗?实际例子似乎否定了这种说法

java - ProGuard - 如何保留方法并同时混淆它们?

java - 如何创建一个自定义alertDialog,其中的列表绑定(bind)到onClick事件android?

java - spring-cloud-starter-oauth2 验证 token 时 RestTemplate 请求 UnknownHostException

android - ListView如何限制勾选框的个数

java - 计算两个重复列表的差异

java - 如何使用Java流获取存储在类的对象的Arraylist中的String和ArrayList