Android访问ListView中的所有子项
我有一个使用自定义ListAdapter构建的listView。我需要访问列表视图中的所有子项,以便在列表视图中的每个项中获取TextView的所有文本Android访问ListView中的所有子项,android,listview,Android,Listview,我有一个使用自定义ListAdapter构建的listView。我需要访问列表视图中的所有子项,以便在列表视图中的每个项中获取TextView的所有文本 private void calcTotalSales () { View v; TextView tx; String abc=""; ListView myList = (ListView) findViewById(R.id.todaySalesListView); for (int i = 0;
private void calcTotalSales ()
{
View v;
TextView tx;
String abc="";
ListView myList = (ListView) findViewById(R.id.todaySalesListView);
for (int i = 0; i < myList.getChildCount(); i++)
{
v = (View) myList.getChildAt(i);
tx = (TextView) v.findViewById(R.id.quantityTB);
Log.d ("Text", tx.getText().toString());
}
}
以下是我面临的问题:
任何人都可以提供帮助?如何设置TextView的文本?而不是直接从listviewListView中设置数据的位置进行访问,出于性能原因,请回收视图。因此,它将为列表中的可见项分配内存。i、 例如,如果列表有100个项目,并且一次可以看到10个项目,那么listview将只为10个视图分配内存。因此,这里发生的情况是,当您尝试在滚动列表时获取子视图时,您将获得npetrode:I添加到ListAdapter Dhawal的代码中,Pragani:介意分享您解决此问题的方法吗?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
final int _position = position;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.activity_today_sales_list_view, null);
holder = new ViewHolder();
holder.txt_itemName = (TextView) convertView.findViewById(R.id.itemNameTB);
holder.txt_itemPrice = (TextView) convertView.findViewById(R.id.priceTB);
holder.txt_itemQuantity = (TextView) convertView.findViewById(R.id.quantityTB);
holder.txt_plusBtn = (Button) convertView.findViewById(R.id.addBtn);
holder.txt_minusBtn = (Button) convertView.findViewById(R.id.minusBtn);
holder.txt_plusBtn.setTag(holder);
holder.txt_minusBtn.setTag(holder);
convertView.setTag(holder);
holder.txt_plusBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Set Text of TextView
}
});
holder.txt_minusBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Set Text of TextView
}
});
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txt_itemName.setText(itemDetailsrrayList.get(position).getItemName());
holder.txt_itemPrice.setText("RM "+itemDetailsrrayList.get(position).getItemCost());
return convertView;
}