我怎样才能从值复选框机器人 [英] How can i get values from checkbox in android
本文介绍了我怎样才能从值复选框机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在checkbox.But我只拿到了一些字母数字numbers.How我可以从复选框选中项目的名称选择的项目的名称
公开查看getView(INT位置,查看convertView,ViewGroup中父){
查看查看= NULL;
如果(convertView == NULL){
LayoutInflater充气= context.getLayoutInflater();
鉴于= inflator.inflate(R.layout.customlistlayout,NULL);
最后ViewHolder viewHolder =新ViewHolder();
viewHolder.text =(TextView中)view.findViewById(R.id.label);
viewHolder.checkbox =(复选框)view.findViewById(R.id.check);
viewHolder.checkbox
.setOnCheckedChangeListener(新CompoundButton.OnCheckedChangeListener(){
@覆盖
公共无效onCheckedChanged(CompoundButton buttonView,
布尔器isChecked){
模型元素=(模型)viewHolder.checkbox
.getTag();
element.setSelected(buttonView.isChecked());
在这里输入code
//System.out.println(itemname);
}
});
view.setTag(viewHolder);
viewHolder.checkbox.setTag(list.get(位置));
} 其他 {
鉴于= convertView;
((ViewHolder)view.getTag())checkbox.setTag(list.get(位置))。
}
ViewHolder支架=(ViewHolder)view.getTag();
holder.text.setText(list.get(位置).getName());
holder.checkbox.setChecked(list.get(位置).isSelected());
返回查看;
}
解决方案
试试这个示例code ..落实到你的code
公共类行星延伸活动{
私人的ListView mainListView;
私人星球[]行星;
私人ArrayAdapter<星球> listAdapter;
/ **第一次创建活动时调用。 * /
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.listview);
//找到的ListView资源。
mainListView =(ListView控件)findViewById(R.id.mainListView);
//当项目被窃听,切换选中的复选框和行星的性质。
mainListView.setOnItemClickListener(新AdapterView.OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图<>父,查看项目,
INT位置,长的id){
行星地球= listAdapter.getItem(位置);
planet.toggleChecked();
PlanetViewHolder viewHolder =(PlanetViewHolder)item.getTag();
viewHolder.getCheckBox()setChecked(planet.isChecked())。
}
});
//创建并填充行星。
行星=(行星[])getLastNonConfigurationInstance();
如果(行星== NULL){
行星=新行星[] {
新行星(水星),
新行星(金星),
新行星(大地),
新行星(火星),
新行星(朱庇特),
新行星(土星),
新行星(天王星),
新行星(海王星),
新行星(谷神星),
新行星(冥王星),
新行星(妊神星),
新行星(鸟神),
新行星(厄里斯)
};
}
ArrayList的<星球> planetList =新的ArrayList<星球>();
planetList.addAll(Arrays.asList(行星));
//设置我们的自定义数组适配器作为ListView的适配器。
listAdapter =新PlanetArrayAdapter(这一点,planetList);
mainListView.setAdapter(listAdapter);
}
/ **存放星球的数据。 * /
私有静态类行星{
私人字符串名称=;
私人布尔查= FALSE;
//公共行星(){}
公共星球(字符串名称){
this.name =名称;
}
/ *公共行星(字符串名称,布尔检查){
this.name =名称;
this.checked =检查;
} * /
公共字符串的getName(){
返回名称;
}
/ *公共无效setname可以(字符串名称){
this.name =名称;
} * /
公共布尔器isChecked(){
返回检查;
}
公共无效setChecked(布尔检查){
this.checked =检查;
}
公共字符串的toString(){
返回名称;
}
公共无效toggleChecked(){
!检查=检查;
}
}
/ **存放子视图一行。 * /
私有静态类PlanetViewHolder {
私人复选框复选框;
私人的TextView TextView的;
//公共PlanetViewHolder(){}
公共PlanetViewHolder(TextView的TextView的,复选框复选框){
this.checkBox =复选框;
this.textView = TextView的;
}
公开复选框getCheckBox(){
返回复选框;
}
/ *公共无效setCheckBox(复选框复选框){
this.checkBox =复选框;
} * /
公众的TextView getTextView(){
返回的TextView;
}
/ *公共无效setTextView(TextView中的TextView){
this.textView = TextView的;
} * /
}
/ **定义适配器,用于显示行星对象的数组。 * /
私有静态类PlanetArrayAdapter扩展ArrayAdapter<星球> {
私人LayoutInflater充气;
公共PlanetArrayAdapter(上下文的背景下,名单,其中,行星> planetList){
超(背景下,R.layout.simplerow,R.id.rowTextView,planetList);
//缓存的LayoutInflate避免询问,每次一个新的。
充气= LayoutInflater.from(上下文);
}
@覆盖
公共查看getView(INT位置,查看convertView,ViewGroup中父){
//星球显示
行星地球=(星球)this.getItem(位置);
复选框复选框;
的TextView TextView的;
如果(convertView == NULL){
convertView = inflater.inflate(R.layout.simplerow,NULL);
TextView的=(的TextView)convertView.findViewById(R.id.rowTextView);
复选框=(复选框)convertView.findViewById(R.id.CheckBox01);
convertView.setTag(新PlanetViewHolder(TextView的,多选));
checkBox.setOnClickListener(新View.OnClickListener(){
公共无效的onClick(视图v){
复选框CB =(复选框)V;
行星地球=(星球)cb.getTag();
planet.setChecked(cb.isChecked());
如果(cb.isChecked()){
字符串s = planet.getName();
的System.out.println(多个);
}
}
});
}
其他 {
PlanetViewHolder viewHolder =(PlanetViewHolder)convertView.getTag();
复选框= viewHolder.getCheckBox();
的TextView = viewHolder.getTextView();
}
checkBox.setTag(行星);
checkBox.setChecked(planet.isChecked());
textView.setText(planet.getName());
返回convertView;
}
}
公共对象onRetainNonConfigurationInstance(){
返回的行星;
}
}
i want to get the name of the item selected in the checkbox.But i got only some alphanumeric numbers.How can i obtain the name of the selected item from checkbox
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
LayoutInflater inflator = context.getLayoutInflater();
view = inflator.inflate(R.layout.customlistlayout, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.text = (TextView) view.findViewById(R.id.label);
viewHolder.checkbox = (CheckBox) view.findViewById(R.id.check);
viewHolder.checkbox
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
Model element = (Model) viewHolder.checkbox
.getTag();
element.setSelected(buttonView.isChecked());
enter code here
//System.out.println(itemname);
}
});
view.setTag(viewHolder);
viewHolder.checkbox.setTag(list.get(position));
} else {
view = convertView;
((ViewHolder) view.getTag()).checkbox.setTag(list.get(position));
}
ViewHolder holder = (ViewHolder) view.getTag();
holder.text.setText(list.get(position).getName());
holder.checkbox.setChecked(list.get(position).isSelected());
return view;
}
解决方案
Try this sample code.. Implement to your code
public class Planets extends Activity {
private ListView mainListView ;
private Planet[] planets ;
private ArrayAdapter<Planet> listAdapter ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
// Find the ListView resource.
mainListView = (ListView) findViewById( R.id.mainListView );
// When item is tapped, toggle checked properties of CheckBox and Planet.
mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick( AdapterView<?> parent, View item,
int position, long id) {
Planet planet = listAdapter.getItem( position );
planet.toggleChecked();
PlanetViewHolder viewHolder = (PlanetViewHolder) item.getTag();
viewHolder.getCheckBox().setChecked( planet.isChecked() );
}
});
// Create and populate planets.
planets = (Planet[]) getLastNonConfigurationInstance() ;
if ( planets == null ) {
planets = new Planet[] {
new Planet("Mercury"),
new Planet("Venus"),
new Planet("Earth"),
new Planet("Mars"),
new Planet("Jupiter"),
new Planet("Saturn"),
new Planet("Uranus"),
new Planet("Neptune"),
new Planet("Ceres"),
new Planet("Pluto"),
new Planet("Haumea"),
new Planet("Makemake"),
new Planet("Eris")
};
}
ArrayList<Planet> planetList = new ArrayList<Planet>();
planetList.addAll( Arrays.asList(planets) );
// Set our custom array adapter as the ListView's adapter.
listAdapter = new PlanetArrayAdapter(this, planetList);
mainListView.setAdapter( listAdapter );
}
/** Holds planet data. */
private static class Planet {
private String name = "" ;
private boolean checked = false ;
//public Planet() {}
public Planet( String name ) {
this.name = name ;
}
/*public Planet( String name, boolean checked ) {
this.name = name ;
this.checked = checked ;
}*/
public String getName() {
return name;
}
/*public void setName(String name) {
this.name = name;
}*/
public boolean isChecked() {
return checked;
}
public void setChecked(boolean checked) {
this.checked = checked;
}
public String toString() {
return name ;
}
public void toggleChecked() {
checked = !checked ;
}
}
/** Holds child views for one row. */
private static class PlanetViewHolder {
private CheckBox checkBox ;
private TextView textView ;
//public PlanetViewHolder() {}
public PlanetViewHolder( TextView textView, CheckBox checkBox ) {
this.checkBox = checkBox ;
this.textView = textView ;
}
public CheckBox getCheckBox() {
return checkBox;
}
/* public void setCheckBox(CheckBox checkBox) {
this.checkBox = checkBox;
}*/
public TextView getTextView() {
return textView;
}
/*public void setTextView(TextView textView) {
this.textView = textView;
} */
}
/** Custom adapter for displaying an array of Planet objects. */
private static class PlanetArrayAdapter extends ArrayAdapter<Planet> {
private LayoutInflater inflater;
public PlanetArrayAdapter( Context context, List<Planet> planetList ) {
super( context, R.layout.simplerow, R.id.rowTextView, planetList );
// Cache the LayoutInflate to avoid asking for a new one each time.
inflater = LayoutInflater.from(context) ;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Planet to display
Planet planet = (Planet) this.getItem( position );
CheckBox checkBox ;
TextView textView ;
if ( convertView == null ) {
convertView = inflater.inflate(R.layout.simplerow, null);
textView = (TextView) convertView.findViewById( R.id.rowTextView );
checkBox = (CheckBox) convertView.findViewById( R.id.CheckBox01 );
convertView.setTag( new PlanetViewHolder(textView,checkBox) );
checkBox.setOnClickListener( new View.OnClickListener() {
public void onClick(View v) {
CheckBox cb = (CheckBox) v ;
Planet planet = (Planet) cb.getTag();
planet.setChecked( cb.isChecked() );
if(cb.isChecked()){
String s = planet.getName();
System.out.println(s);
}
}
});
}
else {
PlanetViewHolder viewHolder = (PlanetViewHolder) convertView.getTag();
checkBox = viewHolder.getCheckBox() ;
textView = viewHolder.getTextView() ;
}
checkBox.setTag( planet );
checkBox.setChecked( planet.isChecked() );
textView.setText( planet.getName() );
return convertView;
}
}
public Object onRetainNonConfigurationInstance() {
return planets ;
}
}
这篇关于我怎样才能从值复选框机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文