-1

나는이 프로젝트를 link에서 시도해 보았습니다. 모든 것이 잘 작동합니다. 출력도 있습니다. 나는 그것을 향상시키고 싶지만 무엇을 해야할지 모른다. 배경을 가지고 있는데, 나는 recyclerview에서 gridlayoutmanager의 각 행에 대해 배경으로 유지해야합니다. 도와주세요. 그리고 미리 감사드립니다GridLayoutManager 각 행의 배경이 동일합니다.

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

주 좀 더 코드 - 당신의 배경, 어댑터, 우리를 기대하지 않습니다 당신이 도와주기 위해서 질문에서 프로젝트 양식을 체크 아웃하는 것 –

+0

그래서 recycler_view_items에 배경을 설정할 때 아무 일도 일어나지 않습니까? –

+0

그 배경은 각 항목에 표시되지만 각 행에 대해이 배경이 필요합니다. –

답변

0

쉬운 해킹 : U 대신 gridLayoutManager의의 LinearLayout 관리자를 사용할 수 있습니다. 이

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

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

<LinearLayout> 

처럼

무엇인가에 따라 값을 설정하는 어댑터를 변경 : 그런 다음 유 (recycler_view_items adpater 즉, 각 항목에 대한 레이아웃) 항목의 레이아웃을 변경할 수 있습니다. 레이아웃 및 어댑터 코드를 변경해야합니다. u는 각 행에 대해 배경을 설정할 수 이 u를 위해 작동 할

(PS : 각 행은 이제 하나의 항목으로 간주됩니다)

+0

고마워 친구하지만 gridlayoutmanager를 사용해야합니다. 그리드에만 항목을 표시하고 있기 때문입니다. 그리드보기에서 동일한 이미지가있는 각 행을 표시합니다. –

+0

그리드 레이아웃이 도움이되지 않습니다.이 .adapter는 개별 객체를 그리기 위해 개별적으로 사용합니다. 항목. u는 어댑터 안의 각 행에 액세스하지 못합니다 – Vicky

+0

OK, 감사합니다 Vicky :) –