2017-04-14 17 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 
} 

}