ListView中的EditText / Checkbox文本/值

时间:2014-04-27 08:38:15

标签: android listview android-listview android-checkbox textedit

我有一个ListView,在列表视图中,EditText或'CheckBox'表示前7行的chekbox,然后Edittext对其他行可见。现在,我想要在前7行中Checkbox内单击这些行的值,并在单击Button时单击其余行的'EditText'文本。 但问题是EditText和Checkbox的索引,因为它在ListView ..

如何在单击按钮中获取所有行的值或文本...

public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;
    ViewHolder holder;

    if(convertView==null){ 

        //Inflate tabitem.xml file for each row ( Defined below ) 
        vi = inflater.inflate(R.layout.tabitem, null); 

        // View Holder Object to contain tabitem.xml file elements
        holder=new ViewHolder();
        holder.text=(TextView)vi.findViewById(R.id.textView1);

        holder.check =(CheckBox)vi.findViewById(R.id.checkBox1);
        holder.text2=(EditText)vi.findViewById(R.id.editText1);
        holder.text2.setTag(1);
        int position12 = (Integer)holder.text2.getTag();
        System.out.print(position12 + "value");

        //  Set holder with LayoutInflater 
        vi.setTag(holder);            

        j++;

        if(j<8){
            holder.text2.setVisibility(View.INVISIBLE);
            holder.check.setX(-150);
        }
        else{
             holder.check.setVisibility(View.INVISIBLE);
        }
    }
    else {  
        holder=(ViewHolder)vi.getTag();
    }

    holder.text2.getText();
    if(data.size()<=0) {
        holder.text.setText("No Data");
        holder.text2.getText();
        // Log.v("BBBB",  holder.text2.getText().toString());
    }
    else {
        // Get each Model object from Arraylist
        tempValues=null;
        tempValues = (ListModel) data.get(position);

        // Set Model values in Holder elements
        holder.text.setText(tempValues.getCompanyName());
        holder.text2.getText();

        // Set Item Click Listner for LayoutInflater for each row 
        vi.setOnClickListener(new OnItemClickListener(position));
    }

    Log.v("DDD",  holder.text2.getText().toString());
    return vi;
}

1 个答案:

答案 0 :(得分:0)

我建议你在代码中为每个EditText设置id。喜欢:holder.text2.setId(position); 您应将其放入else,我的意思是:/************ Set Model values in Holder elements ***********/

通过这种方式,您可以随时从所有EditText中获取文本:

for(int i=0;i<data.size();i++){
EditText et=(EditText)vi.findViewById(i);
if(et!=null)
//Get the text from EditText
}