我有一个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;
}
答案 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
}