如何自动刷新片段中的列表视图?

问题描述 投票:1回答:5

输入数据后,我不会使用基本适配器实现自定义列表视图,我的列表不会自动刷新。我需要重新打开片段以查看更新。

public class Lead_Adapter extends BaseAdapter {
private Context context;
private ArrayList<Lead_Model> leadarrayList;

public Lead_Adapter(Context context,ArrayList<Lead_Model>arrayList){

    this.context = context;
    this.leadarrayList = arrayList;

}


@Override
public int getCount() {
    return this.leadarrayList.size();
}

@Override
public Object getItem(int position) {
    return leadarrayList.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convert_view, ViewGroup parent) {
    LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convert_view = layoutInflater.inflate(R.layout.lead_listview, null);
    TextView Company_Name = convert_view.findViewById(R.id.company_name_listview);
    TextView Lead_Status = convert_view.findViewById(R.id.lead_status_listview);
    TextView Lead_Date = convert_view.findViewById(R.id.lead_date_listview);

    Lead_Model leadModel = leadarrayList.get(position);
    Company_Name.setText(leadModel.getCompany_name());
    Lead_Status.setText(leadModel.getLead_status());
    Lead_Date.setText(leadModel.getDate());
    return convert_view;
}
java android android-listview
5个回答
2
投票

将数据添加到片段中的适配器后,请执行以下操作

adapter.notifyDataSetChanged();

1
投票

完成数据添加后,您可以致电notifyDataSetChanged()


0
投票

当您将片段添加到arrayList中的项目时,您必须执行adapter.notifyDataSetChanged()


0
投票

输入数据后,只需通知列表,无需重新打开片段。

items.clear();
items = db.getItems(); // fetch items from database
listAdapter.notifyDataSetChanged();

-1
投票

有两种解决方案,最简单的方法是处理程序:

    final Handler handler = new Handler();

    Runnable refresh = new Runnable() {
            @Override
            public void run() {
                new JSONParse().execute();  
                handler.postDelayed(this, 60 * 1000);
            }
        };

    handler.postDelayed(refresh, 60 * 1000);

此处理程序每​​分钟刷新一次数据。

第二种方法正在使用livedata:

https://medium.com/@taman.neupane/basic-example-of-livedata-and-viewmodel-14d5af922d0

希望有用


-1
投票

使用处理程序及其postDelayed方法使列表的适配器无效,如下所示:

final Handler handler = new Handler() handler.postDelayed( new Runnable() {

    @Override
    public void run() {
        adapter.notifyDataSetChanged();
        handler.postDelayed( this, 60 * 1000 );
    } }, 60 * 1000 );

此处理程序每​​分钟刷新一次数据。

© www.soinside.com 2019 - 2024. All rights reserved.