0

我有一个ListView,并在该列表视图中,EditText或'CheckBox'意味着Chekbox的前7行,然后Edittext是其他行可见。现在,我需要点击前7行内Checkbox内部单击的这些行的值,以及单击Button时剩余行的'EditText'文本。 但问题是针对的EditText和复选框指数,因为它是在ListView ..编辑文本/复选框内的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; 
} 

回答

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 
}