آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

لیست ویو رفرش نمیشه با آیتم‌های جدید

tux-world  10 سال پیش  10 سال پیش
0 0

سلام دوستان من یه کاستوم آداپتر دارم که رسما سرویسم کرده. وقتی با داده های جدید ست میکنم هیچ مشکلی ندارم ولی وقتی که آیتم جدیدی بهش اضافه میکنم اون تو آرایه و هم آرایه اداپتر اضافه میشه و مشکلی نداره ولی لیست رفرش نمیشه با آیتم جدید

items = new ArrayList();
    adapter = new ReceivedAdapter(context, items);
    getRequestFromServer(0, 10);

بعد از این دستورات من ۱۰ تا آیتم تو items دارم که اون رو با تابع زیر پر میکنم

    private String getRequestFromServer(long lastID, int count) {
        String received = "";
        try {
            received = new JsonService(config_username, config_password, lastID, count, G.F_RECEIVE_SMS).request();
            JSONArray data_array = new JSONArray(received);
   
            String mUserID = config_username;
            for (int i = 0; i < data_array.length(); i++) {
                JSONObject json_obj = data_array.getJSONObject(i);
   
                String mLastID = json_obj.getString("id_recived_sms");
                String mSmsBody = json_obj.getString("sms_body");
                String mSmsNumber = json_obj.getString("sms_number");
                String mSenderName = json_obj.getString("mobile_number");
                String mContactName = json_obj.getString("contact_name");
                String mDate = json_obj.getString("recived_date");
   
                ReceivedItemStructure item = new ReceivedItemStructure(
                        mLastID,
                        mUserID,
                        mSmsBody,
                        mSmsNumber,
                        mSenderName,
                        mContactName,
                        mDate
                );
                items.add(item);
            }
            setListAdapter(adapter);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return received;
    }


خوب بعد این میام یه آیتم دیگه به لیست اضافه میکنم با تابع زیر

 

    private void addDataToList(String LastID, String SmsBody, String SmsNumber, String SenderName, String ContactName, String Date) {
        String mLastID      = LastID;
        String mUserID      = config_username;
        String mSmsBody     = SmsBody;
        String mSmsNumber   = SmsNumber;
        String mSenderName  = SenderName;
        String mContactName = ContactName;
        String mDate = Date;
        ReceivedItemStructure item = new ReceivedItemStructure(
                mLastID,
                mUserID,
                mSmsBody,
                mSmsNumber,
                mSenderName,
                mContactName,
                mDate
        );
        items.add(item);
        adapter.setRow(items);
        adapter.notifyDataSetChanged();
    }


تا اینجا هیچ مشکلی ندارم و تریس هم کردم با setRow هم مشکلی ندارم و راحت به لیست اداپتر اضافه میشه ولی انگار نه انگار لیست ویو اصلا به روز نمیشه با داده جدید.نمیدونم مشکل کجاست

اداپتری که من نوشتم

    public class ReceivedAdapter extends BaseAdapter
    {
        private LayoutInflater inflater;
        private List row;
        public ReceivedAdapter(Context context, List row)
        {
            this.row = row;
            inflater = LayoutInflater.from(context);
        }
        public void setRow(List row) {
            this.row = row;
        }
        @Override
        public int getCount() {
            return row.size();
        }
        @Override
        public ReceivedItemStructure getItem(int position) {
            return row.get(position);
        }
        @Override
        public long getItemId(int position) {
            return 0;
        }
   
        @Override
        public View getView(int position, View convertView, ViewGroup parent)
        {
            if(convertView ==null){
                convertView = inflater.inflate(R.layout.received_sms_list_fragment, null);
            }
            TextView tv_smsBody = (TextView)convertView.findViewById(R.id.tv_smsBody);
            tv_smsBody.setText(getItem(position).getmSmsBody());
   
            TextView tv_smsSender = (TextView)convertView.findViewById(R.id.tv_smsSender);
            tv_smsSender.setText(getItem(position).getmSmsBody());
   
            TextView tv_smsDate = (TextView)convertView.findViewById(R.id.tv_smsDate);
            tv_smsDate.setText(getItem(position).getmDate());
            return convertView;
        }
    }
0 0
چرا از روش استاد استفاده نمیکنی؟ (10 سال پیش)
0 0
خوب من از تب استفاده میکنم و اون شکلی جواب نمیده برای کار من (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .