对不起,如果有人问过,我搜索但没找到任何东西。我正在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)
{
}
}
提前致谢
答案 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;
}
根据您的要求格式化字符串。