2016-05-03 3 views
0

Es gibt 5 Zeilen (Artikel) in einem Recyclerview und enthält Checkbox (C-Box) und editText (noOfQst). Ich kann die Texteigenschaft des aktuellen Halters editText mit dem folgenden Code in meiner Klasse onBindviewHolder festlegen.Wie setze ich Texteigenschaften von editText an bestimmten Positionen in Recyclerview?

holder.noOfQst.setText(String.valueOf(value)); 

Aber was ich brauche, ist all den Wert des editText zu setzen zusammen wie der Code unten

firstrow.noOfQst.setText(String.valueOf(value)); 
secondrow.noOfQst.setText(String.valueOf(value)); 
thirdrow.noOfQst.setText(String.valueOf(value)); 
fourthrow.noOfQst.setText(String.valueOf(value)); 
fifthrow.noOfQst.setText(String.valueOf(value)); 

Ich tue dies, weil Notwendigkeit, den Wert zu setzen, wenn der Benutzer die Zustand.Verfahren die Checkbox ändern folgende ist mein Code für Ihr Verständnis.

holder.cbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
       @Override 
       public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
        //set your object's last status 
        tblchapter.setSelected(isChecked); 
        tblchapter.setVisibled(isChecked); 


        //if checkbox checked display EditText(No of qstns), else hide it. 
        if (holder.cbox.isChecked()) { 
          checkedCount+=1; 
          holder.noOfQst.setVisibility(View.VISIBLE); 
          holder.noOfQst.requestFocus(); 

           if(checkedCount>0) 
            { 
             int value = 40/checkedCount; 
             holder.noOfQst.setText(String.valueOf(value)); 

            } 
           } 
          } 

         } 
        else { 
          checkedCount-=1; 
          holder.noOfQst.setVisibility(View.INVISIBLE); 
          holder.noOfQst.setText(""); //remove entered value when uncheck 

        } 
       } 
      }); 
+1

recyclerviews normalerweise in Situationen, in denen Sie gleiche Logik zu jedem Eintrag – Pooya

+0

anwenden möchten, wenn Sie einige Artikel in RecyclerView ändern oder ändern möchten, sollten Sie notifyItemChanged (Position) des RecyclerView Adapter – miskohut

+0

@pooya nennen .. .Ich muss alle Texteigenschaften meines editText dynamisch ändern, wenn der Benutzer auf das Kontrollkästchen klickt. Die Situation ist so. Irgendeine Idee, um dieses Ziel zu erreichen? –

Antwort

0

Sie können Kinder von RecyclerView bekommen mit, RecyclerView.getChildAt(). Es gibt Ihnen alle Kinder, die derzeit im Handy sichtbar sind.

for(i = 0; i < recyclerView.getChildCount(); i++) 
{ 
    final View child = recyclerView.getChildAt(i); 
    // do something with the View. like setting the text to TextView 
} 
+0

Ich arbeite an der Adapterklasse. Ich kann dies tun, wenn Sie mir helfen könnten, ein Array an die Basisklasse zu übergeben. Irgendein Vorschlag dafür? –

+0

Entschuldigung. Könntest du ein bisschen mehr erklären? Welches Array? Welche Basisklasse? – Bob

+0

Recyclerview ist in meiner ** examfragment.java ** Klasse und Adapterklasse ist ** chapteradapter.java **. Ich habe ein Integer-Array namens ** childcount [] ** in der Klasse ** chapteradapter **, also muss ich diese Klasse ** childcount [] ** an die Klasse ** examfragment ** übergeben. –

Verwandte Themen