2016-10-18 6 views
0

Я использую на держателе привязки привязки, хотя, но по некоторым причинам я получаю сообщение об ошибке «не могу разрешить ошибку метода». Как вы можете видеть, это моя первая попытка, поэтому я могу совершить какую-то огромную ошибку . Я попробовал несколько методов, но ни один из них не похож на работу.getAdapterPosition не работает (v24)

package com.techhgeeks.techhgeeks; 
import android.support.v7.widget.RecyclerView; 
import android.content.Context; 
import android.widget.ImageView; 
import android.widget.TextView; 


import android.view.LayoutInflater; 
import java.util.List; 
import com.bumptech.glide.Glide; 
import android.view.View; 
import android.view.ViewGroup; 




public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements View.OnClickListener { 
    private Context context; 
    private List<MyData> my_data; 

    public MyAdapter(Context context, List<MyData> my_data) { 
     this.context = context; 
     this.my_data = my_data; 
    } 



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

     View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_child,parent,false); 

     return new ViewHolder(itemView); 
    } 

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

     holder.description.setText(my_data.get(position).getDescription()); 
     Glide.with(context).load(my_data.get(position).getImage_link()).into(holder.imageView); 

    } 

    @Override 
    public int getItemCount() { 
     return my_data.size(); 
    } 

    @Override 
    public void onClick(View view) { 
     int position = getAdapterPosition(); 

    } 


    public class ViewHolder extends RecyclerView.ViewHolder{ 

     public TextView description; 
     public ImageView imageView; 

     public ViewHolder(View itemView) { 
      super(itemView); 
      description = (TextView) itemView.findViewById(R.id.textView); 
      imageView = (ImageView) itemView.findViewById(R.id.image); 
     } 


    } 


} 
+0

Где находится ошибка «невозможно разрешить ошибку метода»? – nerdlyist

ответ

1

Я нашел проблему, которая вызвана тем, что вы используете getAdapterPosition в неправильном месте.

Во-первых, удалите эту часть в исходном коде (OnClick):

int position = getAdapterPosition(); 

Во-вторых, изменить метод onCreateViewHolder.

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_child, parent, false); 
    final ViewHolder holder = new ViewHolder(itemView); 
    itemView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int position = holder.getAdapterPosition(); 
     } 
    }); 
    return new ViewHolder(itemView); 
} 
+0

Я использую 'com.android.support:recyclerview-v7:24.0.+' – Nawaz

+0

Пробовал перестроить, очистить bulid ... ту же ошибку "невозможно разрешить метод getAdapterPosition" Вы уверены, что в моем коде нет ничего плохого? – Nawaz

+0

Метод getAdapterPosition находится в классе ViewHolder. – YkSix

0

getAdapterPosition() является частью пересмотра 22 библиотеки поддержки. вы не в состоянии решить, потому что вы все еще используете обороты 21. Изменение

'com.android.support:recyclerview-v7:21.0.+' 

-

'com.android.support:recyclerview-v7:24.0.0' 

затем построить проект.

+0

Я уже использую 'com.android.support:recyclerview-v7:24.0.0' – Nawaz