相关疑难解决方法(0)

RecyclerView适配器notifyDataSetChanged无法正常工作

我延长了

RecyclerView.Adapter<RecyclerView.ViewHolder>
Run Code Online (Sandbox Code Playgroud)

当我打电话的时候:

mRecyclerView.getAdapter().notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

没啥事儿.

刷新视图的唯一方法是再次设置适配器(请参阅此答案):

mRecyclerView.setAdapter(new MyAdapter(...));
Run Code Online (Sandbox Code Playgroud)

这个解决方案有两个问题:

  1. 当我再次设置适配器时,我可以看到屏幕上闪烁
  2. 列表视图返回第一个位置.

有任何想法吗?

android android-adapter notifydatasetchanged android-recyclerview

27
推荐指数
2
解决办法
3万
查看次数

notifyDataSetChange无法在RecyclerView上运行

我正在使用Android的新RecyclerView,但每当我调用其中一个"notify"方法时,我都无法刷新我的自定义适配器.

我试过调用notifyDataSetChanged,notifyItemRangeInserted和notifyItemInserted,但它们似乎都没有工作.

这是我的自定义适配器的代码.我基本上试图刷新一个字符串列表:

package com.mycompany.myapp.adapters;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.mycompany.myapp.R;

import java.util.List;

public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> {

    private List<String> mDataset;

    public FeedAdapter(List<String> dataset) {
        super();
        mDataset = dataset;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int i) {
        LinearLayout v = (LinearLayout) LayoutInflater.from(parent.getContext())
                .inflate(R.layout.list_item_feed, parent, false);
        v.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT));
    return new ViewHolder(v);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.setText(mDataset.get(position));
    }

    @Override
    public int getItemCount() {
        return mDataset.size();
    } …
Run Code Online (Sandbox Code Playgroud)

android custom-adapter android-support-library android-recyclerview

26
推荐指数
2
解决办法
4万
查看次数

从另一个线程更新主线程中的ListView

我有一个单独的线程来运行从互联网上获取数据.之后,我想通过调用adapter.notifyDataSetChanged()更新主线程中的ListView.但它不起作用.任何解决方法?谢谢.

android

12
推荐指数
3
解决办法
4万
查看次数

NotifyDataSetChanged- RecyclerView - 这是一个异步调用吗?

我notifyDataSetChanged在reinlerview上执行后尝试遵循一组语句.但是当我调试我的应用程序时,调试器notifyDataSetChanged在转到onBindViewHolderrecyclerview的适配器之后到达接下来的几行.所以我的问题是 - notifyDataSetChanged是异步调用吗?如果是,我们会收到回电吗?PS:我已经搜索了这个答案,我找不到合适的答案,这就是我向社区提问的原因.

android asynchronous notifydatasetchanged android-recyclerview

9
推荐指数
1
解决办法
5767
查看次数

在Parse查询后,RecyclerView notifyDataSetChanged无法正常工作

在查询Parse获取某些数据后,我正在尝试更新我的Recycler视图.在done我调用的查询方法中notifyDataSetChagned,但从不显示列表

package com.garciaericn.t2d.fragments;

public class DevicesCardViewFragment extends Fragment implements View.OnClickListener {

    private OnFragmentInteractionListener mListener;
    private BatteryHelper mBatteryHelper;
    Intent mBatteryStatus;

    private RecyclerView mRecyclerView;
    private DeviceAdapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;
    private List<Device> mDevices;

    public DevicesCardViewFragment() {
        // Required empty public constructor
        mDevices = new ArrayList<Device>();
    }

    public static DevicesCardViewFragment newInstance() {
        // Bundle parameters is necessary

        return new DevicesCardViewFragment();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Get arguments
        getDevices();

        mBatteryHelper = new BatteryHelper(getActivity());

        IntentFilter intentFilter = …
Run Code Online (Sandbox Code Playgroud)

android parse-platform android-recyclerview

3
推荐指数
1
解决办法
8120
查看次数