将Checkbox中的值分配给不完整的变量

时间:2013-02-23 16:39:17

标签: android

对不起,如果有人问过,我搜索但没找到任何东西。我正在android中创建一个表单并且有一些我想要传递的复选框,如果它们被选中或不被检查。 所以我做了复选框并将视图转换为复选框,因此它将检查我点击的任何复选框(还没有添加复选框监听器)。问题是,当它确定复选框被选中时,我想让该框的布尔值为真

当您勾选购买复选框时,我希望将isbuyable布尔值设置为true。如果不使用许多if语句来设置每一个,这是可能的吗? 我创建了字符串变量nameofboolean,它是布尔值的名称,用于更改状态但不确定如何在没有大量IF语句检查每个布尔值的情况下实际更改该布尔值。

编辑:为了澄清,我想要的是在选中复选框时将每个复选框的布尔匹配设置为true。如果可能的话,我只是不想使用大量的IF来做。

package com.Assist.assistme;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Spinner;
import android.widget.TextView;

public class market extends Activity implements OnItemSelectedListener
{
//UI elements
TextView choose;
Spinner list;
TextView buyrent;
CheckBox buyable;
CheckBox rentable;
TextView type;
CheckBox hard;
CheckBox soft;
CheckBox ebook;
TextView condition;
CheckBox new_book;
CheckBox used_book;
Button search;

String course_chosen;
Boolean isbuyable;
Boolean isrentable;
Boolean ishard;
Boolean issoft;
Boolean isebook;
Boolean isnew_book;
Boolean isused_book;



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

    iteminit();

    OnClickListener checkboxlistener = new OnClickListener()
    {

        @Override
        public void onClick(View v) 
        {
            if(((CheckBox) v).isChecked())
            {
                String nameofboolean = "is" + v.toString();

            }

        }

    };


}

private void iteminit() 
{
    choose = (TextView)findViewById(R.id.market_choose);
    buyrent = (TextView)findViewById(R.id.market_buyrent);
    buyable = (CheckBox)findViewById(R.id.market_buy);
    rentable = (CheckBox)findViewById(R.id.market_rent);
    type = (TextView)findViewById(R.id.market_type);
    hard = (CheckBox)findViewById(R.id.market_hardcover);
    soft = (CheckBox)findViewById(R.id.market_softcover);
    ebook = (CheckBox)findViewById(R.id.market_ebook);
    condition = (TextView)findViewById(R.id.market_condition);
    new_book = (CheckBox)findViewById(R.id.market_new);
    used_book = (CheckBox)findViewById(R.id.market_used);
    search = (Button)findViewById(R.id.market_search);

    list = (Spinner)findViewById(R.id.market_list);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.course_choices, android.R.layout.simple_spinner_item);                 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    list.setAdapter(adapter);
    list.setOnItemSelectedListener(this);

}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos,
        long id) 
{
    course_chosen = parent.getItemAtPosition(pos).toString();

}
@Override
public void onNothingSelected(AdapterView<?> arg0) 
{

}

}

提前致谢

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你想要这样的东西

CheckBox buyable,rentable,hard,soft,ebook,condition,new_book,used_book;
CheckBox[] checklist={ buyable,rentable,hard,soft,ebook,condition,new_book,used_book};
int ids[]={R.id.market_buy,R.id.market_rent,R.id.market_hardcover,R.id.market_softcover,R.id.market_ebook,R.id.market_new,R.id.market_used};
设置contentView

后,在onCreate中

for(int i=0;i<checklist.length;i++)
{
checklist[i]=findViewById(ids[i]);
}

像这样调用此方法

String data=getAllcheckedValues();

获取所有选中的值

public String getAllCheckedValues()
{
String checkItems="";
for(int i=0;i<checklist.length;i++)
{
if(checklist[i].isChecked())
{
checkItems+=checkItems+checklist[i].getText()+"is Checked"+"\n";
}
}
return checkItems;
}

根据您的要求格式化字符串。