2016-04-11 24 views
0

下記のように、リサイクルビューアアダプタにある評価バーリスナ内の評価バーのリストで、選択した評価バーのポジションを取得するにはコード? ユーザーがクリックしたときに各評価バーの個々の評価を取得することはできますが、特定の評価バーの位置をリストに表示する方法がないため、ユーザーがどの評価バーをクリックしたかはわかりません。私は、以下のコードに示すように、リサイクルビューのリストに値を設定するアダプタの中に評価バーを配置しました。評価バーにはthisライブラリを使用しています。そしてここで私は、ユーザーが自分の評価バーリスナー内onCreateViewHolderにする必要があります評価バーのリストで選択/クリックされた評価バーのポジションを取得する方法

@Override 
    public RateMa3Adapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
//  create a new view 
     View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.rate, viewGroup, false); 

     view.setOnClickListener(RateMa3.myOnClickListener); 
     ViewHolder viewHolder = new ViewHolder(view); 
     rootView = view; 
     ButterKnife.bind(this, view); 
     lowerRatingBar.setListener(ratingListener); 

     return viewHolder; 
    } 

    private RatingListener ratingListener = new RatingListener() { 
     @Override 
     public void onRatePicked(ProperRatingBar ratingBar) { 

      Snackbar.make(rootView, 
        String.format("Rating is %d " , ratingBar.getRating()), 
        Snackbar.LENGTH_SHORT).show(); 

      Log.e("Rate", ratingBar.getRating() + " rating"); 

// HOW CAN I GET THE POSITION OF A RATING BAR THE USER HAS CLICKED IN HERE?? THATS MY QUESTION, SINCE I HAVE A LIST OF RATING BARS 
     } 
    }; 

答えて

2

コードのみを選択したレーティングバーの位置を取得することができますどのように私は自分のリスナーを配置したアダプタの私のコードです方法は次のようになります。

View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.rate, viewGroup, false); 
ViewHolder viewHolder = new ViewHolder(view); 
return viewHolder; 

あなたはonBindViewHolder(ViewHolder viewHolder, int position)方法でonClickListenerを設定する必要があります。そこには、viewHolder.itemView.setOnClickListener()

+0

おかげを使用し、全体のビューにonClickListenerを設定するにはRecyclerView

内の位置である第二のパラメータを、使用することができます!出来た :) – ros