1

버튼 배경색을 설정하고 있습니다. 내 버튼은 배열 값에서 생성되고 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); 
     } 
    } 
} 

답변

2

"else"를 추가해야합니다. 배경 색상을 변경하는 onBindViewHolder 메소드의 모든 "if"조건과 이에 대한 기본 배경색을 설정해야합니다.

편집 :

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.location.length; i++) { 
       if (Cart_fragment.location[i].equals(str.toString().trim())) { 
        getResult2loca.append(str + ","); 
        addbackccolor(holder.tv_country); 
       } 
       else 
        setDefaultBackColor(holder.tv_country); 
      } 
+0

에 추가 그것을 제거 선택 버튼을 다시 지상 –

+0

당신은 내가 다른 부분을 넣어 내 코드를 수정할 수 있습니까? @ REza.Abedini –

+0

제발 내 대답에 대한 설명을 추가 할게 기다려주십시오. –

1

가 (재활용)의 세포를 재사용한다

어댑터 클래스는 (뿐만 아니라 onClick에서) 어댑터에 onBindViewHolder(...) {..} 다시 기본에 색상을 설정해야합니다. 그렇다면 그것은 작동합니다.

UPDATE 또한 문이 같은 기본 색상 설정하는 경우에 당신은 당신에 다른 블록을 추가 할 수 있습니다 계정에 @Reza에서 답을 복용

:

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); 
     } else { 
      //SET DEFAULT COLOR HERE 
     } 
     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); 
     } 
     else { 
      //SET DEFAULT COLOR HERE 
     } 
    } 

또 다른 가능성을 (그냥 때문에 그 이상으로 스위치를 선호 if-else 블록이 스위치가 될 경우 :

if (holder.tv_country.getTag()!=null){ 
     switch (holder.tv_country.getTag()) { 
      case "btnpex": 
      getResult2polish.append(str + ","); 
      addbackccolor(holder.tv_country); 
      break; 
      //other cases... 
      default: 
       //SET DEFAULT COLOR HERE 
     } 
    } 
+0

는 onBindViewHolder (...) {...} 메소드의 의미를 다시 기본 기본 색상을 설정해야합니까? –

+0

는 예 - 당신이 (당신이 셀의 레이아웃에 영향을 미치는 코드 또는 다른 물건을 어딘가에 View.GONE하는 뷰의 가시성을 설정하는 경우도 중요) 내가 외부에서 버튼에 기본 배경을 추가 – Katharina

+0

을 onBindViewHolder''에서 전체 셀을 재설정해야 버튼을 클릭하면 내 문제는 해결되지만 RecylerView를 스크롤하면 새로운 문제가 발생합니다. 선택된 버튼의 색상이 제거됩니다. –

1

당신은 배열 또는 목록에 버튼의 상태를 저장하고 적용 할 수 있습니다 또한 예를 들어 교체, 당신의 루프를 모두 변경해야 onViewBind에서 가져옵니다. 상태에 따라 색상을 변경하려면 xml 파일을 사용하십시오.

+0

에서 그렇게 할 수 있습니까? 당신은 누른 상태 진실과 기본에 대한 거짓에 대한 부울 즉의 형태로 저장 내 코드? @Prathmesh 파틸 –

+0

에 쓸 수 있습니다. –

+0

하지만 여러 개의 버튼을 가지고있는 동적 버튼 동적 다음 대신 배열의 목록을 사용하여 버튼을 추가 할 때리스트에 요소를 추가 첨가하는 경우 참 또는 거짓 상태 버튼 –

관련 문제