버튼 배경색을 설정하고 있습니다. 내 버튼은 배열 값에서 생성되고 recylerview와 cardview를 사용하여 레이아웃을 생성합니다. 버튼을 클릭하면 모든 것이 잘 작동합니다. 'D'는 첫 번째 버튼을 클릭 할 때 배경을 설정하지만 자동으로 버튼 'M'을 클릭하고 다음 버튼을 클릭하면 'E'가 자동으로 버튼 'N'에 배경을 설정합니다. 그것은 자동으로 9 번째 위치 버튼 M, N, O ........ 후이 문제를 해결하는 데 도움 버튼을 색상을 설정합니다.프로그래밍 방식으로 버튼 색상 설정
여기 내 조각 클래스입니다.
public class Cart_fragment extends Fragment {
public static ImageView img1,img2,img3,img4,img5,img6,img7,img8,img9,img10;
public static String [] colorarray={"D","E","F","G","H","I","J","K","L","M","N","O-P","Q-R","S-T","U-V","W-X","Y-Z"};
public static String [] clarity={"IF","FL","VVS1","VVS2","VS1","VS2","SI1","SI2","SI3","I1","I2","I3"};
public static String [] cut={"IDL","EX","VG","GD","FR","PR"};
public static String [] polish={"EX","VG","GD","FR","PR","POLISH"};
public static String [] symmetry={"EX","VG","GD","FR","PR","SYMM"};
public static String [] fluorance={"NON","VSLT","SLT","FNT","MED","STG"};
public static String [] lab={"GIA","IGI","HRD","OWN","EGL"};
public static String [] location={"MUMBAI","MUMBAI1","MUMBAI2","SURAT"};
public static String [] Intensity={"DEEP","FAINT","FANCY","FANCY DARK","FANCY DEEP","FANCY VIVID","FANCY INTENSE",
"FANCY LIGHT","LIGHT","VERYLIGHT"};
public static String [] overtone={"YELLOWISH","BROWNISH","BROWNISH GREEN","BLUISH","GRAYISH","GRAYISH YELLOWISH","GRAYISH GREENISH",
"GREENISH","PINKISH","PURPLISH"};
public static String [] colorfancy={"BROWN","YELLOW","GREEN","PINK","GRAY","BLUE","GREEN YELLOW","ORANGE BROWN","YELLOW GREEN"};
RadioGroup radg;
RadioButton white,fancy;
String flag="true";
String flag2="false";
String flag3="normal";
View rootView;
int counter=0;
Recyleradapter adapter;
LinearLayout fancyshow,whitehide;
RecyclerView recyclerView, clarityrecylerview,cutrecyler,polishrecyler,symmetryrecyler,fluorancerecyler,
labrecylerlab,loc_recyler,intensityrecylerview,overtonerecylerview,fancycolorrecylerview;
List<String> colorlist;
public static Cart_fragment newInstance() {
Cart_fragment fragment = new Cart_fragment();
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.cartfrag, container, false);
img1=(ImageView)rootView.findViewById(R.id.img1);
img2=(ImageView)rootView.findViewById(R.id.img2);
img3=(ImageView)rootView.findViewById(R.id.img3);
img4=(ImageView)rootView.findViewById(R.id.img4);
img5=(ImageView)rootView.findViewById(R.id.img5);
img6=(ImageView)rootView.findViewById(R.id.img6);
img7=(ImageView)rootView.findViewById(R.id.img7);
img8=(ImageView)rootView.findViewById(R.id.img8);
img9=(ImageView)rootView.findViewById(R.id.img9);
img10=(ImageView)rootView.findViewById(R.id.img10);
radg=(RadioGroup)rootView.findViewById(R.id.radgrp);
white=(RadioButton)rootView.findViewById(R.id.white);
fancy=(RadioButton)rootView.findViewById(R.id.fancyradio);
fancyshow=(LinearLayout)rootView.findViewById(R.id.fancy);
whitehide=(LinearLayout)rootView.findViewById(R.id.whitecolorhide);
img1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addbackcolor(img1);
}
});
img2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addbackcolor(img2);
}
});
img3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addbackcolor(img3);
}
});
img4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addbackcolor(img4);
}
});
img5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addbackcolor(img5);
}
});
img6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addbackcolor(img6);
}
});
img7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addbackcolor(img7);
}
});
img8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addbackcolor(img8);
}
});
img9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addbackcolor(img9);
}
});
img10.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addbackcolor(img10);
}
});
recyclerView = (RecyclerView)rootView.findViewById(R.id.color_recyler);
recyclerView.setHasFixedSize(true);
LinearLayoutManager horizontalLayoutManagaer = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
recyclerView.setLayoutManager(horizontalLayoutManagaer);
clarityrecylerview = (RecyclerView)rootView.findViewById(R.id.clarity_recyler);
clarityrecylerview.setHasFixedSize(true);
LinearLayoutManager horizontalLayoutManagaer1 = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
clarityrecylerview.setLayoutManager(horizontalLayoutManagaer1);
cutrecyler = (RecyclerView)rootView.findViewById(R.id.cut_recyler);
cutrecyler.setHasFixedSize(true);
LinearLayoutManager horizontalLayoutManagaer2 = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
cutrecyler.setLayoutManager(horizontalLayoutManagaer2);
polishrecyler = (RecyclerView)rootView.findViewById(R.id.polish_recyler);
polishrecyler.setHasFixedSize(true);
LinearLayoutManager horizontalLayoutManagaer3 = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
polishrecyler.setLayoutManager(horizontalLayoutManagaer3);
symmetryrecyler = (RecyclerView)rootView.findViewById(R.id.symmetry_recyler);
symmetryrecyler.setHasFixedSize(true);
LinearLayoutManager horizontalLayoutManagaer4 = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
symmetryrecyler.setLayoutManager(horizontalLayoutManagaer4);
fluorancerecyler = (RecyclerView)rootView.findViewById(R.id.fluorance_recyler);
fluorancerecyler.setHasFixedSize(true);
LinearLayoutManager horizontalLayoutManagaer5 = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
fluorancerecyler.setLayoutManager(horizontalLayoutManagaer5);
labrecylerlab = (RecyclerView)rootView.findViewById(R.id.lab_recyler);
labrecylerlab.setHasFixedSize(true);
LinearLayoutManager horizontalLayoutManagaer6 = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
labrecylerlab.setLayoutManager(horizontalLayoutManagaer6);
loc_recyler = (RecyclerView)rootView.findViewById(R.id.loc_recyler);
loc_recyler.setHasFixedSize(true);
LinearLayoutManager horizontalLayoutManagaer7 = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
loc_recyler.setLayoutManager(horizontalLayoutManagaer7);
intensityrecylerview = (RecyclerView)rootView.findViewById(R.id.intensity_recyler);
intensityrecylerview.setHasFixedSize(true);
LinearLayoutManager horizontalLayoutManagaer8 = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
intensityrecylerview.setLayoutManager(horizontalLayoutManagaer8);
overtonerecylerview = (RecyclerView)rootView.findViewById(R.id.overtone_recyler);
overtonerecylerview.setHasFixedSize(true);
LinearLayoutManager horizontalLayoutManagaer9 = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
overtonerecylerview.setLayoutManager(horizontalLayoutManagaer9);
fancycolorrecylerview = (RecyclerView)rootView.findViewById(R.id.colorfancy_recyler);
fancycolorrecylerview.setHasFixedSize(true);
LinearLayoutManager horizontalLayoutManagaer10 = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
fancycolorrecylerview.setLayoutManager(horizontalLayoutManagaer10);
addarray(colorarray);
addarray(clarity);
addarray(cut);
addarray(polish);
addarray(symmetry);
addarray(fluorance);
addarray(lab);
addarray(location);
addarray(Intensity);
addarray(overtone);
addarray(colorfancy);
white.setChecked(true);
white.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
whitehide.setVisibility(View.VISIBLE);
fancyshow.setVisibility(View.GONE);
}
});
fancy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
whitehide.setVisibility(View.GONE);
fancyshow.setVisibility(View.VISIBLE);
}
});
return rootView;
}
private void addbackcolor(ImageView img1) {
img1.setBackgroundResource(R.drawable.roundedbackground);
}
private void addarray(String[] colorarray) {
colorlist = new ArrayList<>();
for (int i = 0; i < colorarray.length; i++) {
colorlist.add(colorarray[i]);
}
addadapter(colorlist);
}
private void addadapter(List<String> colorlist) {
if(counter==7){
adapter = new Recyleradapter(getContext(),(ArrayList<String>) colorlist,flag);
}else if(counter==8||counter==9||counter==10){
adapter = new Recyleradapter(getContext(),(ArrayList<String>) colorlist,flag2);
}else {
adapter = new Recyleradapter(getContext(),(ArrayList<String>) colorlist,flag3);
}
counter++;
addrecyler(adapter,counter);
}
private void addrecyler(Recyleradapter adapter, int counter) {
int getcount=counter;
if(getcount==1){
recyclerView.setAdapter(adapter);
}else if (getcount==2){
clarityrecylerview.setAdapter(adapter);
}else if (getcount==3){
cutrecyler.setAdapter(adapter);
}else if (getcount==4){
polishrecyler.setAdapter(adapter);
}else if (getcount==5){
symmetryrecyler.setAdapter(adapter);
}else if (getcount==6){
fluorancerecyler.setAdapter(adapter);
}else if (getcount==7){
labrecylerlab.setAdapter(adapter);
}else if (getcount==8){
loc_recyler.setAdapter(adapter);
}else if (getcount==9){
intensityrecylerview.setAdapter(adapter);
}else if (getcount==10){
overtonerecylerview.setAdapter(adapter);
}else if (getcount==11){
fancycolorrecylerview.setAdapter(adapter);
}
}
}
여기는 배열 크기 및 배경색 설정에 따라 버튼을 만드는 어댑터 클래스입니다. RecyclerView
으로
public class Recyleradapter extends RecyclerView.Adapter<Recyleradapter.Viewholder> {
Context ctx;
String flag,colorstring;
int counter = 0,counter2 = 0;
View view;
String [] buttonid = {"btnpex","btnpvg","btnpgd","btnpfr","btnppr",""};
String [] buttonsymm={"btnsex","btnsvg","btnsgd","btnsfr","btnspr",""};
StringBuffer result2color=new StringBuffer();
StringBuffer getResult2clarity=new StringBuffer();
StringBuffer getResult2cut=new StringBuffer();
StringBuffer getResult2polish=new StringBuffer();
StringBuffer getResult2symmetry=new StringBuffer();
StringBuffer getResult2fluorance=new StringBuffer();
StringBuffer getResult2lab=new StringBuffer();
StringBuffer getResult2loca=new StringBuffer();
StringBuffer getResult2intensity=new StringBuffer();
StringBuffer getResult2overtone=new StringBuffer();
StringBuffer getResult2colorfancy=new StringBuffer();
private ArrayList<String> countries;
public Recyleradapter(Context context, ArrayList<String> countries, String flag) {
this.ctx=context;
this.flag=flag;
this.countries = countries;
}
@Override
public Viewholder onCreateViewHolder(ViewGroup parent, int viewType) {
if(flag.equals("true")){
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.child_listview1, parent, false);
}else if (flag.equals("false")){
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.child_listview2, parent, false);
}else{
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.child_listview, parent, false);
}
return new Viewholder(view);
}
@Override
public void onBindViewHolder(final Viewholder holder, final int position) {
final int size = countries.size()-1;
if(countries.contains("POLISH")){
holder.tv_country.setTag(buttonid[position]);
}
if(countries.contains("SYMM")){
holder.tv_country.setTag(buttonsymm[position]);
}
if (countries.contains("POLISH") || countries.contains("SYMM")) {
holder.tv_country.setText(countries.get(position));
if (position == size) {
countries.remove(position);
}
} else {
holder.tv_country.setText(countries.get(position));
}
holder.tv_country.setOnClickListener(new View.OnClickListener() {
final String str = holder.tv_country.getText().toString().trim();
@Override
public void onClick(View v) {
if (holder.tv_country.getTag()!=null){
if (holder.tv_country.getTag().equals("btnpex")) {
getResult2polish.append(str + ",");
addbackccolor(holder.tv_country);
}else if (holder.tv_country.getTag().equals("btnpvg")){
getResult2polish.append(str + ",");
addbackccolor(holder.tv_country);
}else if (holder.tv_country.getTag().equals("btnpgd")){
getResult2polish.append(str + ",");
addbackccolor(holder.tv_country);
}else if (holder.tv_country.getTag().equals("btnpfr")){
getResult2polish.append(str + ",");
addbackccolor(holder.tv_country);
}else if (holder.tv_country.getTag().equals("btnppr")){
getResult2polish.append(str + ",");
addbackccolor(holder.tv_country);
}
if (holder.tv_country.getTag().equals("btnsex")) {
getResult2symmetry.append(str + ",");
addbackccolor(holder.tv_country);
}else if (holder.tv_country.getTag().equals("btnsvg")) {
getResult2symmetry.append(str + ",");
addbackccolor(holder.tv_country);
}else if (holder.tv_country.getTag().equals("btnsgd")) {
getResult2symmetry.append(str + ",");
addbackccolor(holder.tv_country);
}else if (holder.tv_country.getTag().equals("btnsfr")) {
getResult2symmetry.append(str + ",");
addbackccolor(holder.tv_country);
}else if (holder.tv_country.getTag().equals("btnspr")) {
getResult2symmetry.append(str + ",");
addbackccolor(holder.tv_country);
}
}
for (int i = 0; i < Cart_fragment.colorarray.length; i++) {
if (Cart_fragment.colorarray[i].equals(str.toString().trim())) {
addbackccolor(holder.tv_country);
result2color.append(str + ",");
Log.e("iii", String.valueOf(i));
}
}
for (int i = 0; i < Cart_fragment.clarity.length; i++) {
if (Cart_fragment.clarity[i].equals(str.toString().trim())) {
getResult2clarity.append(str + ",");
addbackccolor(holder.tv_country);
}
}
for (int i = 0; i < Cart_fragment.cut.length; i++) {
if (countries.get(0).equals("IDL") && Cart_fragment.cut[i].equals(str.toString().trim())) {
getResult2cut.append(str + ",");
addbackccolor(holder.tv_country);
}
}
for (int i = 0; i < Cart_fragment.fluorance.length; i++) {
if (Cart_fragment.fluorance[i].equals(str.toString().trim())) {
getResult2fluorance.append(str + ",");
addbackccolor(holder.tv_country);
}
}
for (int i = 0; i < Cart_fragment.lab.length; i++) {
if (Cart_fragment.lab[i].equals(str.toString().trim())) {
getResult2lab.append(str + ",");
addbackccolor(holder.tv_country);
}
}
for (int i = 0; i < Cart_fragment.location.length; i++) {
if (Cart_fragment.location[i].equals(str.toString().trim())) {
getResult2loca.append(str + ",");
addbackccolor(holder.tv_country);
}
}
for (int i = 0; i < Cart_fragment.Intensity.length; i++) {
if (Cart_fragment.Intensity[i].equals(str.toString().trim())) {
getResult2intensity.append(str + ",");
addbackccolor(holder.tv_country);
}
}
for (int i = 0; i < Cart_fragment.overtone.length; i++) {
if (Cart_fragment.overtone[i].equals(str.toString().trim())) {
getResult2overtone.append(str + ",");
addbackccolor(holder.tv_country);
}
}
for (int i = 0; i < Cart_fragment.colorfancy.length; i++) {
if (Cart_fragment.colorfancy[i].equals(str.toString().trim())) {
getResult2colorfancy.append(str + ",");
addbackccolor(holder.tv_country);
}
}
Log.e("position", String.valueOf(position));
// Log.e("countrer", String.valueOf(counter));
Log.e("countrer2", String.valueOf(counter2));
Log.e("whitecolor", result2color.toString());
Log.e("clarity", getResult2clarity.toString());
Log.e("cut", getResult2cut.toString());
Log.e("polish", getResult2polish.toString());
Log.e("symme", getResult2symmetry.toString());
Log.e("lab", getResult2lab.toString());
Log.e("locat", getResult2loca.toString());
Log.e("flaoura", getResult2fluorance.toString());
Log.e("intensity", getResult2intensity.toString());
Log.e("overtone", getResult2overtone.toString());
Log.e("fancycolor", getResult2colorfancy.toString());
}
});
}
private void addbackccolor(Button tv_country) {
tv_country.setBackgroundResource(R.drawable.roundedbackground);
}
@Override
public int getItemCount() {
return countries.size();
}
public class Viewholder extends RecyclerView.ViewHolder {
private Button tv_country;
public Viewholder(View itemView) {
super(itemView);
tv_country = (Button)itemView.findViewById(R.id.btn);
}
}
}
에 추가 그것을 제거 선택 버튼을 다시 지상 –
당신은 내가 다른 부분을 넣어 내 코드를 수정할 수 있습니까? @ REza.Abedini –
제발 내 대답에 대한 설명을 추가 할게 기다려주십시오. –