-1

Ich habe dieses Projekt in link versucht. Alles funktioniert gut. Ich habe auch eine Ausgabe. Ich möchte es verbessern, aber ich weiß nicht, was ich tun soll. Ich habe einen Hintergrund, ich muss es als Hintergrund für jede Reihe von gridlayoutmanager in Recyclerview behalten. Bitte helfen Sie mir dabei. und Dank im VorausGridLayoutManager gleichen Hintergrund für jede Zeile

MainActivity.java 
public class MainActivity extends AppCompatActivity { 

RecyclerView recyclerView; 

Context context; 

RecyclerView.Adapter recyclerView_Adapter; 

RecyclerView.LayoutManager recyclerViewLayoutManager; 

String[] numbers = { 
     "one", 
     "two", 
     "three", 
     "four", 
     "five", 
     "six", 
     "seven", 
     "eight", 
     "nine", 
     "ten", 
     "eleven", 

}; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_main); 

    context = getApplicationContext(); 

    recyclerView = (RecyclerView) findViewById(R.id.recycler_view1); 


    recyclerViewLayoutManager = new GridLayoutManager(context, 2); 

    recyclerView.setLayoutManager(recyclerViewLayoutManager); 

    recyclerView_Adapter = new RecyclerViewAdapter(context,numbers); 

    recyclerView.setAdapter(recyclerView_Adapter); 

} 
} 

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

String[] values; 
Context context1; 

public RecyclerViewAdapter(Context context2,String[] values2){ 

    values = values2; 

    context1 = context2; 
} 

public static class ViewHolder extends RecyclerView.ViewHolder{ 

    public TextView textView; 

    public ViewHolder(View v){ 

     super(v); 

     textView = (TextView) v.findViewById(R.id.textview1); 

    } 
} 

@Override 
public RecyclerViewAdapter.ViewHolder 
onCreateViewHolder(ViewGroup parent, int viewType){ 

    View view1 = LayoutInflater.from(context1).inflate 
(R.layout.recycler_view_items,parent,false); 

    ViewHolder viewHolder1 = new ViewHolder(view1); 

    return viewHolder1; 
} 

@Override 
public void onBindViewHolder(ViewHolder Vholder, int position){ 

    Vholder.textView.setText(values[position]); 

    Vholder.textView.setBackgroundColor(Color.CYAN); 

    Vholder.textView.setTextColor(Color.BLUE); 

} 

@Override 
public int getItemCount(){ 

    return values.length; 
} 
} 
+0

Aktien etwas mehr Code - Ihr Hintergrund, Ihre Adapter, nicht erwarten uns um ein Projekt auszufüllen form einen Link in der Frage, um Ihnen zu helfen –

+0

also, wenn Sie den Hintergrund auf die recycler_view_items setzen passiert nichts? –

+0

Dieser Hintergrund wird in jedem Element angezeigt, aber ich brauche diesen Hintergrund für jede Zeile. –

Antwort

0

Leicht Hack: U kann Linearlayout-Manager anstelle von gridLayoutManager. Dann kann u Artikel-Layout (Layout für jedes Element in Adpater dh: recycler_view_items) ändern zu

so etwas wie diese

<LinearLayout 
background: set it as ur image> 
    <LinearLayout> 
    // first item 
    </LinearLayout> 

    <LinearLayout> 
    //2nd item 
    </LinearLayout> 

<LinearLayout> 

und Adapter Werten einzustellen entsprechend ändern. Das Layout und die Adaptercodes müssen geändert werden. Dies wird für u arbeiten, wie u Hintergrund für jede Zeile festlegen

(PS: Jede Zeile jetzt als ein einzelnes Element betrachtet wird)

+0

Danke Buddy, aber ich muss ridlayoutmanager verwenden, da ich nur Elemente im Raster anzeigen .. In der Rasteransicht habe ich jede Zeile mit dem gleichen Bild zeigen .. –

+0

Grid-Layout wird nicht helfen, Sie erreichen das. Adapter verwendet jedes Objekt separat zu zeichnen Artikel. Du bekommst keinen Zugang zu jeder Zeile im Adapter – Vicky

+0

OK, Danke Vicky :) –