Llistview не может зациклить невидимый элемент в scorlbar
Всем Привет
у меня очень плохая ошибка
у меня есть представление списка с пользовательским адаптером
если я поставлю 15 строку в списке выиграть я делаю цикл for
петля в видимом элементе только на экране
если экран займет 10 пунктов то он будет зацикливаться только на 10 пунктах
и не может зациклиться на других 5 элементах
этот образ
https://ibb.co/Zgnx67T [^]
Скриншот-1581700677 — ImgBB[^]
Что я уже пробовал:
это пользовательский адаптер
<pre>package com.bella_system.mostafasalama.bellasystem; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import static com.bella_system.mostafasalama.bellasystem.Constant.Add_Units_Count; import static com.bella_system.mostafasalama.bellasystem.Constant.ItemID; import static com.bella_system.mostafasalama.bellasystem.Constant.ItemName; import static com.bella_system.mostafasalama.bellasystem.Constant.TextLineID; import static com.bella_system.mostafasalama.bellasystem.Constant.TextLineM; import static com.bella_system.mostafasalama.bellasystem.Constant.SUintID; import static com.bella_system.mostafasalama.bellasystem.Constant.TextPrice; import static com.bella_system.mostafasalama.bellasystem.Constant.TextQty; import static com.bella_system.mostafasalama.bellasystem.Constant.TextSubQty; import static com.bella_system.mostafasalama.bellasystem.Constant.Total_COLUMN; import static com.bella_system.mostafasalama.bellasystem.Constant.UintTwoID; import static com.bella_system.mostafasalama.bellasystem.Constant.UintTwoPrice; public class ListViewAdapter extends BaseAdapter{ public ArrayList<HashMap<String, String>> list; Activity activity; public ListViewAdapter(Activity activity,ArrayList<HashMap<String, String>> list){ super(); this.activity = activity; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return 0; } private class ViewHolder{ TextView TextLineID; TextView TextItemID; TextView textLineM; TextView TextItemName; TextView TextTextQty; TextView TextPrice; TextView TextSubQty; TextView UintTwoPrice; TextView TextItemTotal; TextView TextUintID; TextView UintTwoID; TextView Add_Units_Count; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView == null){ LayoutInflater inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView=inflater.inflate(R.layout.datagridviewinv, parent,false); holder=new ViewHolder(); holder.TextLineID = (TextView) convertView.findViewById(R.id.TextLineID); holder.TextItemID=(TextView) convertView.findViewById(R.id.TextItemID); holder.textLineM=(TextView) convertView.findViewById(R.id.TextLineM); holder.TextItemName=(TextView) convertView.findViewById(R.id.ItemName); holder.TextTextQty=(TextView) convertView.findViewById(R.id.TextQty); holder.TextPrice=(TextView) convertView.findViewById(R.id.TextPrice); holder.TextSubQty=(TextView) convertView.findViewById(R.id.TextSubQty); holder.UintTwoPrice=(TextView) convertView.findViewById(R.id.UintTwoPrice); holder.TextItemTotal=(TextView) convertView.findViewById(R.id.TextItemTotal); holder.TextUintID=(TextView) convertView.findViewById(R.id.TextUintID); holder.UintTwoID=(TextView) convertView.findViewById(R.id.UintTwoID); holder.Add_Units_Count=(TextView) convertView.findViewById(R.id.Add_Units_Count); convertView.setTag(holder); } else{ holder=(ViewHolder) convertView.getTag(); } HashMap<String, String> map = list.get(position); if (map != null) { holder.TextLineID.setText(map.get(TextLineID)); holder.TextItemID.setText(map.get(ItemID)); holder.textLineM.setText(map.get(TextLineM)); holder.TextItemName.setText(map.get(ItemName)); holder.TextTextQty.setText(map.get(TextQty)); holder.TextPrice.setText(map.get(TextPrice)); holder.TextSubQty.setText(map.get(TextSubQty)); holder.UintTwoPrice.setText(map.get(UintTwoPrice)); holder.TextItemTotal.setText(map.get(Total_COLUMN)); holder.TextUintID.setText(map.get(SUintID)); holder.UintTwoID.setText(map.get(UintTwoID)); holder.Add_Units_Count.setText(map.get(Add_Units_Count)); } return convertView; } }
а это мой for loop
for (int i = 0; i < listView.getAdapter().getCount(); i++) { if (listView.getChildAt(i) != null) { TextView LineID = (TextView) listView.getChildAt(i).findViewById(R.id.TextLineID); TextView ItemIDV = (TextView) listView.getChildAt(i).findViewById(R.id.TextItemID); TextView LineNumber = (TextView) listView.getChildAt(i).findViewById(R.id.TextLineM); TextView ItemName = (TextView) listView.getChildAt(i).findViewById(R.id.ItemName); TextView Qty = (TextView) listView.getChildAt(i).findViewById(R.id.TextQty); TextView SubQty = (TextView) listView.getChildAt(i).findViewById(R.id.TextSubQty); TextView Price = (TextView) listView.getChildAt(i).findViewById(R.id.TextPrice); TextView ItemTotal = (TextView) listView.getChildAt(i).findViewById(R.id.TextItemTotal); TextView SUintID = (TextView) listView.getChildAt(i).findViewById(R.id.TextUintID); TextView TUintTwoID = (TextView) listView.getChildAt(i).findViewById(R.id.UintTwoID); TextView UintTwoPriceV = (TextView) listView.getChildAt(i).findViewById(R.id.UintTwoPrice); TextView Add_Units_CountASDV = (TextView) listView.getChildAt(i).findViewById(R.id.Add_Units_Count); }
Пожалуйста, Помогите Мне
Kris Lantz
Есть ли у вас:
1) проверил listView.getAdapter().getCount(); возвращает ли он правильное значение (15)?
2) если 1 верно, то все элементы listView имеют дочерние элементы?
Mostafa Salama S
Да возврат с 15 строкой
Нет у ИТК нет детей это всего лишь ссора
Мне нужно сохранить 15 строк в базе данных
Kris Lantz
для (тип int я = 0; Я &л; управления ListView.getAdapter().getCount(); я++) {
if (listView.getChildAt(i) != null) {}
Вторая строка проверяет, есть ли у listview дочерние элементы (для этой итерации.)
Мой пункт 2) спрашивает, проверили ли вы это
if(listView.getChildAt(i) != null) {}
на самом деле он не равен нулю для всех 15 итераций цикла.
Mostafa Salama S
если я удалю вторую строку он даст мне нулевой экспоинтер