我在片段中获得回收浏览量,然后单击回收浏览元素后,我需要将数据发送到此片段并重新启动



嗨,我的片段中有回收景

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_list_petrole, container, false);
    recyclerView = (RecyclerView)view.findViewById(R.id.recycle_view);
    allPetroles = getArguments().getParcelableArrayList("petroles");
    mLayoutManager = new LinearLayoutManager(getActivity());
    recyclerView.setLayoutManager(mLayoutManager);
    mAdapter = new RecyclerAdapter(allPetroles, getActivity());
    recyclerView.setAdapter(mAdapter);

    return view;
}

在RecycleView适配器中,我将OnBindViewHolder的onclicklistener设置为OnClickListener,因此,单击一些RAW发送回片段中的RAW后,我需要进行一些信息(位置((位置(,然后进行一些更改(对此信息进行一些更改(将此信息添加到活动中,并在GMAPS上添加一些新视图((这个OnBindViewHolder:

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
    holder.linearClick.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            positionClick = position;
            notifyDataSetChanged();

--------------I NEED CODE HERE----------------------
        }
    });
    if (positionClick == position) {
        holder.linearClick.setSelected(true);
    }
    else {
        holder.linearClick.setSelected(false);
    }

我不明白我应该如何做

在recycleradapter中:

1-添加一个内部接口:

/**********
 *
 *  Inner interface
 *
 */
public interface OnClickListener {
    void onItemClicked(Item item);
}

2-在构造函数中添加一个参数:

public RecyclerAdapter(Context context, List<Item> data, OnClickListener onClickListener) { 
    mContext = context;
    mData = data;
    mListener = onClickListener 
}

3-致电听众:

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
    holder.linearClick.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //positionClick = position;
            //you don't need this here : notifyDataSetChanged();
            mListener.onItemClicked(mData.get(position));
        }
    });
    if (positionClick == position) {
        holder.linearClick.setSelected(true);
    }
    else {
        holder.linearClick.setSelected(false);
    }

您的片段应实现RecyclerAdapter.OnClickListener

public class YourFragment extends Fragment implements RecyclerAdapter.OnClickListener {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_list_petrole, container, false);
    }
    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        recyclerView = (RecyclerView)view.findViewById(R.id.recycle_view);
        allPetroles = getArguments().getParcelableArrayList("petroles");
        mLayoutManager = new LinearLayoutManager(getActivity());
        recyclerView.setLayoutManager(mLayoutManager);
        mAdapter = new RecyclerAdapter(getActivity(), allPetroles, this);
        recyclerView.setAdapter(mAdapter);
    }
    @Override
    void onItemClicked(Item item) {
        // TODO put your code here
    }
}

最新更新