-1

I have been trying this project in link. Everything is working fine. I got an output also. I would like to enhance it but I don't know what to do. I am having a background , I need to keep it as background for each row of gridlayoutmanager in recyclerview. Please help me on this. and Thanks in advance

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;
}
}
Michele La Ferla
  • 6,775
  • 11
  • 53
  • 79
Om Bala
  • 169
  • 3
  • 18

1 Answers1

0

Easy Hack : U can use LinearLayout manager instead of gridLayoutManager. Then u can change item layout (layout for each item in adpater ie:recycler_view_items) to

something like this

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

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

<LinearLayout>

and change adapter to set values accordingly. It requires changing layout and adapter codes. This will work for u as u can set background for each row

(PS: Each row is now considered as a single item)

Victor
  • 4,171
  • 1
  • 29
  • 37
  • Thanks buddy but i need to use gridlayoutmanager because i am showing items in grid only .. In Grid view , i have show each row with same image.. – Om Bala Nov 10 '16 at 11:41
  • grid layout will not help u achieve this .adapter uses each object separately to draw items. u will not get access to each row inside adapter – Victor Nov 10 '16 at 11:51
  • OK, Thank You Vicky :) – Om Bala Nov 14 '16 at 05:24