2017-04-14 20 views
-2

我想实现一个片段内的onItemClick,当点击一个元素,但我没有结果,但有人可以帮助我?采取onItemClick在一个片段的位置

public class FotoFragment extends Fragment { 


    private List<DataPictures> mediaList = new ArrayList<>(); 
    private RecyclerView mRecyclerView; 
    private MediaRVAdapter adapter; 


    public FotoFragment() { 
    } 



    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.fragment_blank, container, false); 
     mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view); 
     mRecyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 3)); 
     mRecyclerView.setPadding(10,10,10,10); 

     mRecyclerView.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 
       Toast.makeText(v.getContext(), "Intent onLongClick= ", Toast.LENGTH_SHORT).show(); 

       return false; 
      } 
     }); 
     return view; 
    } 

这是我的XML fragment_blank

<android.support.v7.widget.RecyclerView 
    android:id="@+id/recycler_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
</android.support.v7.widget.RecyclerView> 

enter image description here

我试图做一个多选照片的权力,但我已经看到了你可以用onItemClick方法去做,做所以

public void onItemClick(AdapterView parent,View view,int position,long id){

如何获得该元素的位置?使用onLongClick方法?

+1

您可以在界面只需点击使用上面的代码,你需要实现内部适配器 –

+0

希望实现onItemClick点击事件listner,但你正在实现onLongClick ...为什么? – AbhayBohra

+0

显示你的'MediaRVAdapter' –

回答

0

试试这个

的onclick可以在适配器

private Listener mListener; 

使用自定义接口

interface Listener { 
    void performOperation(int Position); 
} 

被achived在适配器初始化听者在构造这样

mListener = (Listener) context; 

在你bindViewHolder方法

holder.yourView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      mListener.performOperation(position); 
     } 
    }); 

现在,在您的片段实施这样

public class FotoFragment extends Fragment implements listner { 

@Override 
public void performOperation(int Position) { 
    //Do whatever you want to do with this position 
} 

}