相关疑难解决方法(0)

为什么RecyclerView没有onItemClickListener()?

我正在探索RecyclerView,我很惊讶地看到RecyclerView它没有onItemClickListener().因为RecyclerView延伸

android.view.ViewGroup

ListView扩展

android.widget.AbsListView

.不过,我解决我的问题写onClick在我的RecyclerView.Adapter:

public static class ViewHolder extends RecyclerView.ViewHolder implements OnClickListener {

    public TextView txtViewTitle;
    public ImageView imgViewIcon;

    public ViewHolder(View itemLayoutView) {
        super(itemLayoutView);
        txtViewTitle = (TextView) itemLayoutView.findViewById(R.id.item_title);
        imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.item_icon);
    }

    @Override
    public void onClick(View v) {

    }
}
Run Code Online (Sandbox Code Playgroud)

但我仍然想知道为什么谷歌被删除了onItemClickListener()

是否有性能问题或其他问题?

java android android-recyclerview

940
推荐指数
17
解决办法
36万
查看次数

RecyclerView.ViewHolder - getLayoutPosition vs getAdapterPosition

由于新的支持库版本(22.x暂时)的getPosition()的方法RecyclerView.ViewHolder类已被否决代替的主题中提到的方法.我并没有真正理解阅读文档.有人可以解释外行人的条款差异吗?

我有以下用例 - 我给我的适配器a List,并且还希望能够为每个列表项关联额外信息.我有一个位置到额外的映射,并且映射可供持有者使用,以便他们可以获取额外的位置并用它做事.在持有人中,我应该使用哪种方法?

当指数0和1的列表项切换位置时,​​持有者位置会发生什么?这些方法返回了什么?

android android-recyclerview

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

如何从另一个ViewHolder中获取对ViewHolder的引用?(RecyclerView)

我有RecyclerView一些view's/card(我现在称它为视图),它们都包含相同的东西,包括View我用作分隔条的东西.

我希望能够view在当前的上面更改此分隔栏的属性.所以说我点击说明的卡片test3,我希望能够设置分隔栏的属性test2 view.

澄清:

我只需要参考上面ViewHolder的视图(或任何其他的)我点击的那个,就是全部.我该怎么做?

在此输入图像描述

public class StuffManagerAdapter extends RecyclerView.Adapter<StuffManagerAdapter.MyViewHolder> {

    private List<StuffManagerClass> stuffList;
    private Context context;
    private String TAG = "CStA";
    DBHandler dbHandler;
    ArrayList<String> tagArray = new ArrayList<>();
    RecyclerView mRecyclerView;

    public StuffManagerAdapter(List<StuffManagerClass> stuffList, Context context) {
        this.stuffList = stuffList;
        this.context = context;
        dbHandler = DBHandler.getInstance(context);
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
        public TextView DeviceTV, NameTV, TagTV;
        private ImageButton editButton, deleteButton;
        public …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

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

在recyclerview中获取第一个可见项目

我正在尝试获取RecyclerView中第一个可见项目的位置,因为我需要一些关于它的信息(例如标题).不幸的是,当我使用LayoutManager.findFirstVisibleItemPosition()它时,它总是返回0.此外,我的RecyclerView位于NestedScrollView中.所有这些项目都在PageAdapter(TabLayout)中.这是我设置RecyclerView的两种方法:

private void initializeAdapter() {
    NaBiezacoAktualnosciAdapter adapter = new NaBiezacoAktualnosciAdapter(items, getContext());
    recyclerView.setAdapter(adapter);
}

private void initializeLayoutManager(final View v) {
    final ExpansiveLayoutManager llm = new ExpansiveLayoutManager(getActivity());
    recyclerView.setLayoutManager(llm);
    recyclerView.setNestedScrollingEnabled(false);
    recyclerView.setHasFixedSize(true);
    recyclerView.addOnItemTouchListener(
            new RecyclerItemClickListener(getContext(), new RecyclerItemClickListener.OnItemClickListener() {
                @Override
                public void onItemClick(View view, int position) {
                }
            })
    );
    NestedScrollView nestedScrollView = (NestedScrollView) v.findViewById(R.id.nested);
    nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
        @Override
        public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
            int firstVisibleCard = llm.findFirstCompletelyVisibleItemPosition();
            int lastVisibleCard = llm.findLastCompletelyVisibleItemPosition();
            Log.d("aaaa", "firstVisibleCard= " …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

6
推荐指数
0
解决办法
5116
查看次数

RecyclerView 搜索过滤器位置错误

我使用 RecyclerView 并对其进行了过滤,但我遇到了问题

在我搜索后,当我按下项目时,我得到了错误的位置,而不是我搜索到的位置,请帮我解决这个问题

RecyclerView 适配器

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

Context context;
List<listitem_gib> getDataAdapter;



public RecyclerViewAdapter(List<listitem_gib> getDataAdapter, Context context){

    super();

    this.getDataAdapter = getDataAdapter;
    this.context = context;

}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview_layout, parent, false);

    ViewHolder viewHolder = new ViewHolder(v,context,getDataAdapter);

    return viewHolder;
}

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {

    listitem_gib getDataAdapter1 =  getDataAdapter.get(position);

    holder.name.setText(getDataAdapter1.getName());
    holder.num.setText(getDataAdapter1.getnum());
    Picasso.with(context).load("http://i-geeky.info/android/image/" + getDataAdapter1.getimg()).into(holder.img1);


}

@Override
public int getItemCount() {

    return getDataAdapter.size();
}

class …
Run Code Online (Sandbox Code Playgroud)

android

4
推荐指数
1
解决办法
5036
查看次数

RecyclerView 的 OnItemClickListener

我想在我的项目上添加点击监听器,RecyclerView这样当我点击某个项目时,它会启动一个新项目Intent并从 Web 服务器检索有关该项目的数据。我尝试了很多建议,但没有一个有帮助。

我的 RecylerView 类

public class GetPrice extends AppCompatActivity {
private RecyclerView recyclerView;
private GridLayoutManager gridLayoutManager;
private  CustomAdapter adapter;
private List<MyData> dataList;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.getpricerecycle);
    recyclerView =(RecyclerView) findViewById(R.id.recycler_view);

    dataList = new ArrayList<>();
    load_data_from_server(0);
    gridLayoutManager = new GridLayoutManager(this,1);
    recyclerView.setLayoutManager(gridLayoutManager);
    adapter = new CustomAdapter(this,dataList);
    recyclerView.setAdapter(adapter);

}

private void load_data_from_server(final int id) {
    AsyncTask<Integer,Void,Void> task = new AsyncTask<Integer, Void, Void>() {
        @Override
        protected Void doInBackground(Integer... params) {
            OkHttpClient client = new …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×6

android-recyclerview ×5

java ×1