Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android访问ListView中的所有子项_Android_Listview - Fatal编程技术网

Android访问ListView中的所有子项

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;

我有一个使用自定义ListAdapter构建的listView。我需要访问列表视图中的所有子项,以便在列表视图中的每个项中获取TextView的所有文本

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());

    }

}
以下是我面临的问题:

  • 我无法访问listview中的第一项
  • 对项目的访问不一致(有时表示成功,有时表示失败)

  • 任何人都可以提供帮助?

    如何设置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;
    }