【问题标题】:Get and Store text from looped checkboxes into a String从循环复选框中获取文本并将其存储到字符串中
【发布时间】:2014-12-02 09:31:29
【问题描述】:

我是android和java编程的新手,我有一个问题,希望你能帮我解决:)

我有一个程序,它将从数据库中获取和循环数据并将其转换为一些复选框,然后用户必须选中复选框并点击提交按钮,, 选中复选框的值将存储到 String[],然后将通过 Intent.putExtra 发送到另一个活动..

到目前为止,我所能做的就是从数据库中获取和循环数据,但我不知道如何将所有选中的值(复选框的)存储到字符串并通过意图将其发送到另一个活动。你们能帮我解决这个问题吗?我应该把代码放在哪里?

这是我的代码:

private void fetchFromDatabase() {
    // TODO Auto-generated method stub
    myDb.open();
    int totalGroup = myDb.countHowManyGroups(Username);
    String groupId[] = myDb.fetchGroupId(Username);
    String groupName[] = myDb.fetchGroupName(Username);
    String flag[] = null;
    for (int i = 0; i < totalGroup; i++) {

        listCheckBox = new CheckBox(this);
        listCheckBox.setText(groupName[i]);
        listCheckBox.setTag(groupId[i]);

        if (listCheckBox.isChecked()) {
            int x=0;
            flag[x]=listCheckBox.getText().toString();
            x++;
        }


        layout.addView(listCheckBox);
    }
    myDb.close();

    Button bSubmit = new Button(this);
    bSubmit.setText("Submit");
    layout.addView(bSubmit);

    bSubmit.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            if (listCheckBox.isChecked()) {

            }

        }
    });
}

【问题讨论】:

  • 您至少有两个选择。首先,当您创建新的 CheckBox 并将它们添加到布局时,它们现在是布局的子级。所以你可以遍历布局的孩子。其次,您可以添加一个 CheckBox [] 复选框数组。

标签: android checkbox storing-data


【解决方案1】:

这取决于您要存储的内容。是否要存储选中复选框的 id?然后覆盖他们的setOnCheckedChangeListener 以将它的id 保存在一个数组中(记住id 是0,除非你设置它。)

你想保存它的标签吗?然后覆盖相同的方法,但保存标签。

下面是setOnCheckedChangeListener的实现示例:

List<String> myTagList = new ArrayList<String>();
listCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked)
                myTagList.add(buttonView.getTag());
            else
                myTagList.remove(buttonView.getTag());
        }
    });

【讨论】:

  • 而 myTagList 是一个 ?字符串[]?
  • 随心所欲。这只是一个例子。
  • 我试过你的代码,但它仍然无法存储值,是另一种方式吗?
  • 他走在正确的道路上:“以身作则”。有足够的时间在以后深入研究。甚至今天。一个人不必按照你或我的方式去做。选择你自己的方式。
  • 谢谢@pedro,我使用了你的代码并尝试用谷歌搜索它,现在成功了,谢谢
猜你喜欢
  • 2014-09-25
  • 1970-01-01
  • 2017-09-22
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-08
  • 1970-01-01
  • 2020-08-11
相关资源
最近更新 更多