2017-02-05 4 views
0

これはRecyclerViewのアダプターです。別のアクティビティでdeckNameの値を取得するにはどうすればよいですか?どうすればrecyclerviewアイテムのテキストビューの価値を得ることができますか?

public class ViewHolder extends RecyclerView.ViewHolder { 
    public RelativeLayout deckLayout; 
    public LinearLayout countsLayout; 
    public ImageButton deckExpander; 
    public ImageButton indentView; 
    public TextView deckName; 
    public TextView deckNew, deckLearn, deckRev; 

    public ViewHolder(View v) { 
     super(v); 
     deckLayout = (RelativeLayout) v.findViewById(R.id.DeckPickerHoriz); 
     countsLayout = (LinearLayout) v.findViewById(R.id.counts_layout); 
     deckExpander = (ImageButton) v.findViewById(R.id.deckpicker_expander); 
     indentView = (ImageButton) v.findViewById(R.id.deckpicker_indent); 
     deckName = (TextView) v.findViewById(R.id.deckpicker_name); 
     deckNew = (TextView) v.findViewById(R.id.deckpicker_new); 
     deckLearn = (TextView) v.findViewById(R.id.deckpicker_lrn); 
     deckRev = (TextView) v.findViewById(R.id.deckpicker_rev); 


    } 
} 

私は、この値を取得し、ここでは、文字列と比較します:

final int itemCount = mDeckListAdapter.getItemCount(); 
DeckAdapter a = new DeckAdapter(getLayoutInflater(), getApplicationContext()); 
for(int i=0;i<itemCount;i++){ 
    // final CharSequence text = DeckAdapter.ViewHolder.deckName.getText(); 
    if (text.equals(di)){ 
     mRecyclerView.findViewHolderForAdapterPosition(i).itemView.performClick(); 
    } 
} 

が、このコードは実際には動作しません。

+0

これを使用してテキストを取得することはできません: 'mRecyclerView.findViewHolderForAdapterPosition(i).deckName.getText()。toString()'? –

+0

@Nicolas Maltaisいいえ、シンボルdecknameを解決できません – golbahar

+0

recyclerviewでアイテムをクリックしようとしていますか? – vishnumm93

答えて

1

この

String title = ((TextView) recyclerView.findViewHolderForAdapterPosition(position).itemView.findViewById(R.id.title)).getText().toString(); 

を試してみてください、私はあなたがこれを試すことができ

recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getApplicationContext(), recyclerView, new RecyclerTouchListener.ClickListener() { 
     @Override 
     public void onClick(View view, int position) { 
      // String title = ((TextView) view.findViewById(R.id.title)).getText().toString(); 
      String title1 = ((TextView) recyclerView.findViewHolderForAdapterPosition(position).itemView.findViewById(R.id.title)).getText().toString(); 
      Toast.makeText(getApplicationContext(), title1, Toast.LENGTH_SHORT).show(); 
     } 

     @Override 
     public void onLongClick(View view, int position) { } 
    })); 
+0

お返事ありがとうございました – golbahar

0

のように使用。

RecyclerViewから各テキストビューの値を反復できるように、textviewから値を取得するコードを以下のコードで使用します。

for(int i=0;i<itemCount;i++) 
{ 
    View view=mRecyclerView.getChildAt(i); // This will give you entire row(child) from RecyclerView 
    if(view!=null) 
    { 
     TextView textView= (TextView) view.findViewById(R.id.deckpicker_name); 
     String text=textView.getText().toString(); 
     if (text.equals(di)){ 
      // Do your stuff, after comparison 
     } 
     } 
} 

私はこれをテストしていませんが、何とかあなたのために働くことを願っています。

+0

あなたの助けにtnx – golbahar

関連する問題