بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
لیست ویو رفرش نمیشه با آیتمهای جدید
سلام دوستان من یه کاستوم آداپتر دارم که رسما سرویسم کرده. وقتی با داده های جدید ست میکنم هیچ مشکلی ندارم ولی وقتی که آیتم جدیدی بهش اضافه میکنم اون تو آرایه و هم آرایه اداپتر اضافه میشه و مشکلی نداره ولی لیست رفرش نمیشه با آیتم جدید
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 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .