2015-04-16 6 views

Odpowiedz

46

Musisz to zaimplementować samodzielnie.

Dodaj nową metodę do niestandardowego adaptera i gotowe.

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

Tak, oczywiście .. ale ja n aby obiekt 'Message' był wartością zwracaną, musisz ustawić List of items jako' List mItems; 'w swoim adapterze. – Davidea

32

Myślę, że poprawny sposób na getItem jest przez RecyclerView LayoutManager.

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

To, jak uzyskać widok, a nie dane wspierające widok. –

+2

@PhoenixFF prawda, ale jeśli masz EditTexts jako elementy, jest to najlepsza metoda na uzyskanie ich wartości (po zmianie przez użytkownika)! :) –

+0

Jak zdobyć tę pozycję –

0

W recycleview można elementy z adapterem RecyclerView używając poniżej kod,

RecyclerView rv_list_frames; 

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

życzę powyżej, które mogą pomóc przedmiotów coraz ..

1

Onclicklistener wystarczyły

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); 

} 
Powiązane problemy