2015-04-16 18 views

risposta

46

Devi implementarlo da solo.

Aggiungere un nuovo metodo nell'adapter personalizzato e il gioco è fatto.

public Message getItem(int position) { 
    return messageList.get(position); 
} 
+0

Sì, certo .. ma io Per avere l'oggetto 'Message' come valore di ritorno è necessario impostare l'elenco di elementi come' List mItems; 'nell'adattatore. – Davidea

32

Penso che il modo corretto per ottenereItem sia attraverso il LayoutManager di RecyclerView.

View v = recyclerView.getLayoutManager().findViewByPosition(position); 
+8

Ecco come ottenere la vista, non i dati che supportano la vista. –

+2

@PhoenixFF true, ma se hai EditTexts come elementi, questo è il metodo migliore per ottenere il loro valore (dopo che è stato modificato dall'utente)! :) –

+0

Come si ottiene questa posizione –

0

In recycleview è possibile ottenere elementi dal adattatore RecyclerView utilizzando sottostante Codice,

RecyclerView rv_list_frames; 

public frames getItem(int position) { 
    return rv_list_frames.get(position); 
} 

desidero sopra che può aiutare a ottenere per gli oggetti ..

1

Onclicklistener ha fatto il trucco

public class MainActivity extends AppCompatActivity { 

    Context context; 
    RecyclerView recyclerView; 
    RelativeLayout relativeLayout; 
    RecyclerView.Adapter recyclerviewAdapter; 
    RecyclerView.LayoutManager recyclerViewLayoutManager; 
    String[] numbers = { "ANDROID", 
      "PHP", 
      "BLOGGER", 
      "WORDPRESS", 
      "JOOMLA", 
      "ASP.NET", 
      "JAVA", 
      "C++", 
      "MATHS", 
      "HINDI", 
      "ENGLISH"}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     context = getApplicationContext(); 
     relativeLayout = (RelativeLayout)findViewById(R.id.relativelayout1); 
     recyclerView = (RecyclerView)findViewById(R.id.recyclerview1); 
     recyclerViewLayoutManager = new LinearLayoutManager(context); 
     recyclerView.setLayoutManager(recyclerViewLayoutManager); 

     recyclerviewAdapter = new RecyclerViewAdapter(context,numbers); 
     recyclerView.setAdapter(recyclerviewAdapter); 



    } 


    public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> { 

     String[] numvalues; 
     Context context; 
     View view1; 
     ViewHolder viewHolder1; 
     TextView textView; 



     public RecyclerViewAdapter(Context context1,String[] numvalues1){ 
      numvalues = numvalues1; 
      context = context1; 


     } 

     public class ViewHolder extends RecyclerView.ViewHolder{ 

      public TextView textView; 

      public ViewHolder(View v){ 
       super(v); 
       textView = (TextView)v.findViewById(R.id.number_textview); 
      } 
     } 
     @Override 
     public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 

      view1 = LayoutInflater.from(context).inflate(R.layout.recyclerview_items,parent,false); 
     //  view1.setOnClickListener(new MyOnClickListener()); 
      view1.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

        int itemPosition = recyclerView.indexOfChild(v); 
        // Toast.makeText(MainActivity.this,"Selected item position is---"+ itemPosition,Toast.LENGTH_SHORT).show(); 
        textView = (TextView)v.findViewById(R.id.number_textview); 
        Toast.makeText(MainActivity.this,"Selected val of clicked position is---"+ textView.getText().toString(),Toast.LENGTH_SHORT).show(); 
       } 
      }); 

      viewHolder1 = new ViewHolder(view1); 



      return viewHolder1; 
     } 

     @Override 
     public void onBindViewHolder(ViewHolder holder, int position) { 
      holder.textView.setText(numvalues[position]); 
     } 

     @Override 
     public int getItemCount() { 
      return numvalues.length; 
     } 
    } 
} 
0
@Override public void onClick(View view, int position) { 

System.out.println("cardetail_activity"+position); 
Intent i = new Intent(getActivity(), CarDetail.class); 
ListingDataprovider data_provider=arrayList.get(position); i.putExtra("ID",data_provider.getId()); getActivity().startActivity(i); 

} 
Problemi correlati