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 
}