Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-我如何知道选中了哪个复选框?_Java_Android_Checkbox - Fatal编程技术网

Java Android-我如何知道选中了哪个复选框?

Java Android-我如何知道选中了哪个复选框?,java,android,checkbox,Java,Android,Checkbox,我只是尝试设置一个文本视图,显示单击按钮时选中的复选框 我希望有一天能够保留这些信息,但现在只要知道选择哪些信息就行了 我正在使用测试文本视图 有什么建议吗 public class skills_management extends Activity implements View.OnClickListener{ private Button buttonLocation; private ListView mainListView ; private Skill[] Skills ; p

我只是尝试设置一个文本视图,显示单击按钮时选中的复选框

我希望有一天能够保留这些信息,但现在只要知道选择哪些信息就行了

我正在使用测试文本视图

有什么建议吗

public class skills_management extends Activity implements View.OnClickListener{

private Button buttonLocation;
private ListView mainListView ;
private Skill[] Skills ;
private ArrayAdapter<Skill> listAdapter ;
static CheckBox cb;

public void onCreate(Bundle savedInstanceState) {       
    super.onCreate(savedInstanceState);
    setContentView(R.layout.skills);

    Button buttonLocation = (Button) findViewById(R.id.buttonLocation);
    buttonLocation.setOnClickListener(this); 

    // Find the ListView resource. 
    mainListView = (ListView) findViewById( R.id.mainListView );

    // When item is tapped, toggle checked properties of CheckBox and Skill.
    mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      @Override
      public void onItemClick( AdapterView<?> parent, View item, int position, long id) {
        Skill Skill = listAdapter.getItem( position );
        Skill.toggleChecked();
        SkillViewHolder viewHolder = (SkillViewHolder) item.getTag();
        viewHolder.getCheckBox().setChecked( Skill.isChecked() );
      }
    });

    // Create and populate Management Skills.
    Skills = (Skill[]) getLastNonConfigurationInstance() ;
    if ( Skills == null ) {
      Skills = new Skill[] { 
          new Skill("Fiscal Management"),
          new Skill("Empowers Others"), 
          new Skill("Ethical"), 
          new Skill("Project Management"), 
          new Skill("Problem Solving"), 
          new Skill("Strategic"), 
          new Skill("Entrepreneurial"), 
          new Skill("Strong Communication"),
          new Skill("Results Oriented"),
          new Skill("Delegation"), 
          new Skill("Professional"), 
          new Skill("Decision Maker"),
          new Skill("Sales"), 
          new Skill("Computer"),
          new Skill("Marketing"),
          new Skill("Training"),
          new Skill("Executive")
      };  
    }

    ArrayList<Skill> SkillList = new ArrayList<Skill>();
    SkillList.addAll( Arrays.asList(Skills) );

    // Set our custom array adapter as the ListView's adapter.
    listAdapter = new SkillArrayAdapter(this, SkillList);
    mainListView.setAdapter( listAdapter );      
  }

  /** Holds Skill data. */
  private static class Skill {
    private String name = "" ;
    private boolean checked = false ;
    public Skill( String name ) {
      this.name = name ;
    }

    public String getName() {
      return 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 SkillViewHolder {
    private CheckBox checkBox ;
    private TextView textView ;

    public SkillViewHolder( TextView textView, CheckBox checkBox ) {
      this.checkBox = checkBox ;
      this.textView = textView ;
    }
    public CheckBox getCheckBox() {
      return checkBox;
    }

    public TextView getTextView() {
      return textView;
    } 

  }

  /////DISPLAY TEXTVIEW
  //called when the button is clicked
public void onClick(View view) 
{
     TextView test= (TextView) findViewById(R.id.testTextView);
     test.setText("test");  //shows whole filename

}

      /** Custom adapter for displaying an array of Skill objects. */
      private static class SkillArrayAdapter extends ArrayAdapter<Skill> {
        private LayoutInflater inflater;

        public SkillArrayAdapter( Context context, List<Skill> SkillList ) {
          super( context, R.layout.skill_row, R.id.rowTextView, SkillList );
          // 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) {
          // Skill to display
          Skill Skill = (Skill) this.getItem( position ); 

          // The child views in each row.
          final CheckBox checkBox ; 
          TextView textView ; 

          // Create a new row view
          if ( convertView == null ) {
            convertView = inflater.inflate(R.layout.skill_row, null);

            // Find the child views.
            textView = (TextView) convertView.findViewById( R.id.rowTextView );
            checkBox = (CheckBox) convertView.findViewById( R.id.CheckBox01 );

            // Optimization: Tag the row with it's child views, so we don't have to 
            // call findViewById() later when we reuse the row.
            convertView.setTag( new SkillViewHolder(textView,checkBox) );

            // If CheckBox is toggled, update the Skill it is tagged with.
            checkBox.setOnClickListener( new View.OnClickListener() {
              public void onClick(View v) {

                cb = (CheckBox) v ;
                Skill Skill = (Skill) cb.getTag();
                Skill.setChecked( cb.isChecked() );

              }
            });    


          }
          // Reuse existing row view
          else {
            // Because we use a ViewHolder, we avoid having to call findViewById().
            SkillViewHolder viewHolder = (SkillViewHolder) convertView.getTag();
            checkBox = viewHolder.getCheckBox() ;
            textView = viewHolder.getTextView() ;

          }

          // Tag the CheckBox with the Skill it is displaying, so that we can
          // access the Skill in onClick() when the CheckBox is toggled.
          checkBox.setTag( Skill ); 

          // Display Skill data
          checkBox.setChecked( Skill.isChecked() );
          textView.setText( Skill.getName() );      

          return convertView;
        }//end class


        } 
public class skills\u management扩展活动实现View.OnClickListener{
私人按钮位置;
私有ListView主ListView;
私人技能[]技能;
专用阵列适配器列表适配器;
静态复选框cb;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.skills);
Button buttonLocation=(Button)findViewById(R.id.buttonLocation);
buttonLocation.setOnClickListener(此);
//查找ListView资源。
mainListView=(ListView)findViewById(R.id.mainListView);
//点击项目时,切换复选框和技能的选中属性。
mainListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父项、视图项、整型位置、长id){
Skill Skill=listAdapter.getItem(位置);
Skill.toggleChecked();
SkillViewHolder viewHolder=(SkillViewHolder)item.getTag();
viewHolder.getCheckBox().setChecked(Skill.isChecked());
}
});
//创建和填充管理技能。
Skills=(Skill[])GetLastNonConfiguration实例();
if(Skills==null){
技能=新技能[]{
新技能(“财务管理”),
新技能(“赋予他人权力”),
新技能(“道德”),
新技能(“项目管理”),
新技能(“解决问题”),
新技能(“战略”),
新技能(“创业”),
新技能(“强大的沟通能力”),
新技能(“注重结果”),
新技能(“授权”),
新技能(“专业”),
新技能(“决策者”),
新技能(“销售”),
新技能(“计算机”),
新技能(“营销”),
新技能(“培训”),
新技能(“高管”)
};  
}
ArrayList SkillList=新建ArrayList();
addAll(Arrays.asList(Skills));
//将自定义阵列适配器设置为ListView的适配器。
listAdapter=新的SkillArrayAdapter(此为SkillList);
mainListView.setAdapter(listAdapter);
}
/**保存技能数据*/
私人静课技能{
私有字符串名称=”;
私有布尔值选中=false;
公共技能(字符串名称){
this.name=名称;
}
公共字符串getName(){
返回名称;
}
公共布尔值已检查(){
退货检查;
}
公共void setChecked(布尔值已选中){
this.checked=checked;
}
公共字符串toString(){
返回名称;
}
public void toggleChecked(){
选中=!选中;
}
}
/**保存一行的子视图*/
私有静态类SkillViewHolder{
私有复选框;
私有文本视图文本视图;
public SkillViewHolder(文本视图文本视图,复选框){
this.checkBox=复选框;
this.textView=textView;
}
公共复选框getCheckBox(){
返回复选框;
}
公共文本视图getTextView(){
返回文本视图;
} 
}
/////显示文本视图
//单击按钮时调用
公共void onClick(视图)
{
TextView测试=(TextView)findViewById(R.id.testTextView);
test.setText(“test”);//显示整个文件名
}
/**用于显示技能对象数组的自定义适配器*/
私有静态类SkillArrayAdapter扩展了ArrayAdapter{
私人充气机;
公共SkillArrayAdapter(上下文上下文,列表SkillList){
super(上下文、R.layout.skill_行、R.id.rowTextView、SkillList);
//缓存LayoutFlate以避免每次请求新的LayoutFlate。
充气器=充气器。从(上下文);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//展示技巧
Skill Skill=(Skill)this.getItem(位置);
//每行中的子视图。
最终复选框;
文本视图文本视图;
//创建新的行视图
if(convertView==null){
convertView=充气机。充气(R.layout.skill\u行,空);
//查找子视图。
textView=(textView)convertView.findViewById(R.id.rowTextView);
复选框=(复选框)convertView.findViewById(R.id.CheckBox01);
//优化:用行的子视图标记行,这样我们就不必这样做了
//稍后当我们重用行时调用findViewById()。
setTag(新的SkillViewHolder(textView,复选框));
//如果复选框被切换,则更新其标记的技能。
checkBox.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
cb=(复选框)v;
Skill Skill=(Skill)cb.getTag();
Skill.setChecked(cb.isChecked());
}
});    
}
//重用现有行视图
否则{
//因为我们使用了ViewHolder,所以不必调用findViewById()。
SkillViewHolder viewHolder=(SkillViewHolder)convertView.getTag();
checkBox=viewHolder.getCheckBox();
textView=viewHolder.getTextView();
}
//用复选框显示的技能标记复选框,以便
//切换复选框时,访问onClick()中的技能。
复选框.setTag(技能);
//显示技能数据
checkBox.setChecked(Skill.isChecked());
textView.setText(Skil
private void getSelectedSkill()
    {
        List<Skill> selectedSkill = new ArrayList<Skill>();
        for(Skill s: this.skills)
        {
            if(s.isSelected())
                selectedSkill.add(s); // Here you will get your selected skill in this list.
        }
    }
package com.skill.vo;

public class Skill
{
    private long id;
    private String name;
    private boolean selected;

    public Skill()
    {

    }

    public long getId()
    {
        return id;
    }

    public void setId(long id)
    {
        this.id = id;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public boolean isSelected()
    {
        return selected;
    }

    public void setSelected(boolean selected)
    {
        this.selected = selected;
    }
}
package com.skill.component;

import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.view.Gravity;
import android.view.View;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.skill.vo.Skill;

public class SkillView extends LinearLayout
{
    // To store skill information
    private Skill skill;
    // For UI
    private Context context;
    private CheckBox chkSelect;
    private TextView tvSkillName;

    public SkillView(Context context, Skill skill)
    {
        super(context);
        this.context = context;
        this.skill = skill;

        /* Initialize UI components */
        this.chkSelect = new CheckBox(this.context);
        this.chkSelect.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View view)
            {
                SkillView.this.skill.setSelected(((CheckBox) view).isChecked());
            }
        });

        this.tvSkillName = new TextView(this.context);
        this.tvSkillName.setTextSize(15);
        this.tvSkillName
                .setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
        this.tvSkillName.setText(" " + this.skill.getName());

        // Add components to main layout
        this.setOrientation(HORIZONTAL);
        this.addView(this.chkSelect, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        this.addView(this.tvSkillName, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    }

    public Skill getSkill()
    {
        return skill;
    }

    public void setSkill(Skill skill)
    {
        this.skill = skill;
    }
}
package com.skill.component;

import java.util.List;

import com.skill.vo.Skill;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

public class SkillViewAdapter extends BaseAdapter
{
    private Context context = null;
    private List<Skill> skillList = null;

    public SkillViewAdapter(Context context, List<Skill> skillList)
    {
        this.context = context;
        this.skillList = skillList;
    }

    public int getCount()
    {
        return this.skillList != null ? this.skillList.size() : 0;
    }

    public Object getItem(int position)
    {
        return this.skillList != null ? this.skillList.get(position) : null;
    }

    public long getItemId(int position)
    {
        if (this.skillList != null)
        {
            Skill p = this.skillList.get(position);
            return p.getId();
        }
        return 0;
    }

    public View getView(int position, View convertView, ViewGroup parent)
    {
        SkillView skillView;

        if (convertView == null)
        {
            skillView = new SkillView(this.context, this.skillList.get(position));
        } else
        {
            skillView = (SkillView) convertView;
            skillView.setSkill(this.skillList.get(position));
        }
        return skillView;
    }

    public List<Skill> getProductList()
    {
        return this.skillList;
    }
}
package com.skill.activity;

import java.util.ArrayList;
import java.util.List;

import com.skill.component.SkillViewAdapter;
import com.skill.vo.Skill;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;

public class SkillAndroidActivity extends Activity
{

    private ListView listViewSkills = null;
    private List<Skill> skills = null;

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        this.listViewSkills = (ListView) this.findViewById(R.id.lv_skills);

        this.skills = new ArrayList<Skill>();
        Skill skill = null;

        skill = new Skill();
        skill.setId(1);
        skill.setName("Java");
        this.skills.add(skill);

        skill = new Skill();
        skill.setId(2);
        skill.setName("PHP");
        this.skills.add(skill);

        skill = new Skill();
        skill.setId(3);
        skill.setName("C++");
        this.skills.add(skill);

        skill = new Skill();
        skill.setId(4);
        skill.setName("VB.net");
        this.skills.add(skill);

        SkillViewAdapter adapter = new SkillViewAdapter(this, this.skills);
        this.listViewSkills.setAdapter(adapter);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll_main"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ListView
        android:id="@+id/lv_skills"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="9" >
    </ListView>
</LinearLayout>