в этом коде после ввода новых элементов для адаптации моего списка не смог обновить и обновить с помощью notifyDataSetChanged()
, например, для этой строки, которую может установить адаптер, без проблем.Адаптер Android с базовым адаптером
adapter = new ReceivedAdapter(context, items);
getRequestFromServer(0, 10);
после этого у меня есть 10 элементов в списке и адаптер.
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;
}
items.add(item);
подсчет является то, что 10
. Теперь в этой bewlo функция после того, как получить новый пункт я от сервера моего списка счетчик может изменить и обновить 11
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();
}
items.add(item);
кола является то, что 11
адаптером обновления .i am как с adapter.setRow()
и в ReceivedAdapter
моем List
размере 11
. мой список после использования addDataToList()
функция 11
, но adapter.notifyDataSetChanged();
не работает, и я не вижу новый элемент в списке адаптеров и списков. все способы добавления и обновления List
с новым элементом с пропуском items
в порядке и ReceivedAdapter, и у меня нет проблемы.
мой адаптер:
public class ReceivedAdapter extends BaseAdapter
{
private LayoutInflater inflater;
private List<ReceivedItemStructure> row;
public ReceivedAdapter(Context context, List<ReceivedItemStructure> row)
{
this.row = row;
inflater = LayoutInflater.from(context);
}
public void setRow(List<ReceivedItemStructure> 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;
}
}
[Пожалуйста, не повторяйте вопросы.] (Http://stackoverflow.com/questions/26312082/android-arrayadapter-notifydatasetchanged-dont-work) Просто обновить свой вопрос с какой-либо новой информации у вас есть добавить. –