하나의 목록을 만들었습니다. 그 안에 나는 경비 금액, 경비 유형, 경비 종류 및 경비 시간을 보여주고있다.여러보기 유형이있는 Recycler보기가 이미지보기에 여러 색상을 표시하지 않습니다.
보기 유형 1에 대해 RecyclerView
을 여러보기 유형과 함께 사용했습니다. 작은 원 모양을 보이고 유형 2를 보면 큰 원입니다.
비용 유형은 두 개의 다른 원을 표시하는 것으로, 하나는 시간이 작고 다른 하나는 날짜가 큼. 둘 다 볼 수 있습니다.
하지만 지금은 시간에 따라 작은 원, 즉 시간에 다른 색을주고 싶습니다. 문제는 12시 30 분 동안의 노란 색으로 채워진 노란 색만의 원을 볼 수 있고 시간과 다른 원들은 공백이며, 아무런 색도없고 단지 국경이 아님을 보여줍니다.
public class IAdapter extends RecyclerView.Adapter<IAdapter.ItemViewHolder> {
ArrayList<Expense> item;
public static final int TYPE1=1;
Context conext;
IAdapter(Context context,ArrayList<Expense> item) {
this.conext=context;
this.item=item;
}
@Override
public int getItemCount() {
return item.size();
}
@Override
public int getItemViewType(int position) {
return item.get(position).getExpenseType();// Assume that this return 1 0r 2
}
@Override
public void onBindViewHolder(ItemViewHolder itemViewHolder, int i) {
itemViewHolder.amount.setText(item.get(i).amount);
itemViewHolder.expense.setText(item.get(i).expense);
Expense expense = new Expense();
expense = item.get(i);
if(TYPE1==i) {
if(expense.getTime().equals("10:30")) {
TextDrawable drawable = TextDrawable.builder()
.beginConfig()
.withBorder(4)
.textColor(Color.BLACK)
.useFont(Typeface.DEFAULT)
.fontSize(25)
.bold()
.toUpperCase()
.endConfig()
.buildRound(expense.getTime(), Color.GREEN);
itemViewHolder.small.setImageDrawable(drawable);
}else if(expense.getTime()
.equals("12:30")) {
TextDrawable drawable = TextDrawable.builder()
.beginConfig()
.withBorder(4)
.textColor(Color.BLACK)
.useFont(Typeface.DEFAULT)
.fontSize(25)
.bold()
.toUpperCase()
.endConfig()
.buildRound(expense.getTime(), Color.YELLOW);
itemViewHolder.small.setImageDrawable(drawable);
}else if(expense.getTime().equals("4:30")) {
TextDrawable drawable = TextDrawable.builder()
.beginConfig()
.withBorder(4)
.textColor(Color.BLACK)
.useFont(Typeface.DEFAULT)
.fontSize(25)
.bold()
.toUpperCase()
.endConfig()
.buildRound(expense.getTime(), Color.BLUE);
itemViewHolder.small.setImageDrawable(drawable);
}else if(item.get(i).time.equals("7:30")){
TextDrawable drawable = TextDrawable.builder()
.beginConfig()
.withBorder(4)
.textColor(Color.BLACK)
.useFont(Typeface.DEFAULT)
.fontSize(25)
.bold()
.toUpperCase()
.endConfig()
.buildRound(expense.getTime(), Color.GRAY);
itemViewHolder.small.setImageDrawable(drawable);
}
}
}
@Override
public ItemViewHolder onCreateViewHolder(ViewGroup viewGroup,int viewType) {
if (viewType==TYPE1) {
View itemView = LayoutInflater.
from(viewGroup.getContext()).
inflate(R.layout.cardlayout, viewGroup, false);
return new ItemViewHolder(itemView,viewType);
} else {
View itemView = LayoutInflater.from(viewGroup.getContext()).
inflate(R.layout.bigcircle, viewGroup, false);
ItemViewHolder ivh = new ItemViewHolder(itemView, viewType);
return ivh;
}
}
public static class ItemViewHolder extends RecyclerView.ViewHolder {
CardView cv;
TextView amount;
TextView expense;
ImageView small;
ImageView big;
ItemViewHolder(View itemView, int viewType) {
super(itemView);
amount = (TextView) itemView.findViewById(R.id.txtAmount);
expense = (TextView) itemView.findViewById(R.id.txtexpense);
cv = (CardView) itemView.findViewById(R.id.card_view);
if(viewType==TYPE1) {small = (ImageView) itemView.findViewById(R.id.small);}
else{ big=(ImageView)itemView.findViewById(R.id.big);
TextDrawable drawable5 = TextDrawable.builder()
.beginConfig()
.withBorder(4)
.textColor(Color.BLACK)
.useFont(Typeface.DEFAULT)
.fontSize(25)
.bold()
.toUpperCase()
.endConfig()
.buildRound("10Jan", Color.CYAN);
big.setImageDrawable(drawable5);}
}
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
}
조각 : 그것은 단지 12시 반 시간을 비교하는 것 등이 생략되어
public class ItemFragment extends Fragment {
RecyclerView recyclerView;
IAdapter adapter;
ArrayList<Expense> items;
public ItemFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_item_list, container, false);
setHasOptionsMenu(true);
Expense e = new Expense();
recyclerView = (RecyclerView) view.findViewById(R.id.RecyclerView);
ImageButton imageButton = (ImageButton) view.findViewById(R.id.imgbtn_fab);
LinearLayoutManager llm = new LinearLayoutManager(this.getActivity());
items=new ArrayList<>();
recyclerView.setLayoutManager(llm);
recyclerView.setHasFixedSize(true);
initializeDataType1();
initRecyclerAdapter();
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), Main2Activity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("list", items);
intent.putExtras(bundle);
startActivityForResult(intent, 101);
}
});
return view;
}
private void initRecyclerAdapter() {
adapter = new IAdapter(getActivity(),items);
recyclerView.setAdapter(adapter);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 101 && resultCode == 102) {
Bundle bundle = data.getExtras();
Expense ex = (Expense) bundle.getSerializable("ex");
items.add(ex);
initRecyclerAdapter();
}
super.onActivityResult(requestCode, resultCode, data);
}
private void initializeDataType1() {
items.add(new Expense("1000", "2000", 1,"10:30"));
items.add(new Expense("2000", "5000", 1,"12:30"));
items.add(new Expense("3000", "400", 2));
items.add(new Expense("1000", "4000", 1,"4:30"));
items.add(new Expense("3000", "3000", 2));
items.add(new Expense("2000", "100", 1,"4:30"));
items.add(new Expense("2000", "3333", 2));
items.add(new Expense("3000", "shopping", 1,"7:30"));
items.add(new Expense("1000", "food", 1,"7:30"));
items.add(new Expense("1000", "food", 2));
items.add(new Expense("2000", "drink", 1,"7:30"));
items.add(new Expense("3000", "shopping", 2,"10:30"));
items.add(new Expense("2000", "3333", 1,"7:30"));
items.add(new Expense("3000", "shopping", 1,"7:30"));
items.add(new Expense("1000", "food", 1,"12:30"));
items.add(new Expense("1000", "food", 1,"7:30"));
items.add(new Expense("2000", "drink", 1,"10:30"));
items.add(new Expense("3000", "shopping", 1,"10:30"));
}
}
. 왜 이런 일이 일어나는 걸까요?
예. 감사합니다 .. @R. 자고 스키 – Sid