2016-08-05 6 views
0

setonclicklistener nicht daran arbeitet, wie ich diese CheckboxBenutzerdefinierte Kontrollkästchen ist nicht auf setonclicklistener Methode überprüfen funktioniert nicht

public void startQuizClick(View v) { 
     count++; 
     HashMap<String, String> h1 = questionlist.get(k); 
     question.setText(h1.get("question_text")); 
     val = Integer.parseInt(h1.get("total_options")); 
    for (int i = 0; i < Integer.parseInt(h1.get("total_options")); i++) 
    { 
      HashMap<String, String> h2 = optionlist.get(i); 
      // cb is custom checkbox 
      cb = new CheckBox(this); 
      cb.setId(i); 
      cb.setEnabled(true); 
      cb.setTextColor(getResources().getColor(R.color.textColor)); 
      cb.setText(h2.get("option_text" + i)); 
      cb.setTextSize(14); 
      //linear layout 
      linearLay1.addView(cb); 
     } 
+0

Haben Sie versucht, setOnCheckedChangeListener(); –

+0

Versuchen Sie es mit * setOnCheckedChangedListener *. –

+0

ich versuche dies auch nicht funktioniert :( –

Antwort

0
cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     //do stuff 

    } 
}); 
+0

ich versuche dies auch nicht funktioniert –

+0

importieren android.widget.CompoundButton; dieses oder irgendein anderes Paket? –

+0

nein, ich bin nicht mit diesem Paket –

0

bessere Art und Weise der Handhabung und sehr einfach gestaltet auf diese Weise wählen.

public void startQuizClick(View v) { 
     count++; 
     HashMap<String, String> h1 = questionlist.get(k); 
     question.setText(h1.get("question_text")); 
     val = Integer.parseInt(h1.get("total_options")); 

     LayoutInflater inflater = (LayoutInflater) ACTIVITYNAME.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     for (int i = 0; i < Integer.parseInt(h1.get("total_options")); i++) { 
      View view = inflater.inflate(R.layout.row_layout, null); 
      CheckBox cb = (CheckBox) view.findViewById(R.id.checkBox); 

      HashMap<String, String> h2 = optionlist.get(i); 
      cb.setId(i); 
      cb.setEnabled(true); 
      cb.setTextColor(getResources().getColor(R.color.textColor)); 
      cb.setText(h2.get("option_text" + i)); 
      cb.setTextSize(14); 
      cb.setOnCheckedChangeListener(this); 
      cb.setTag(i); 
      linearLay1.addView(view); 
     } 
    } 

onCheckedChanged()

 @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      switch ((int)buttonView.getTag()) { 
       case 0: 

        break; 
       case 1: 

        break; 
       case 2: 

        break; 
       case 3: 

        break; 
       case 4: 

        break; 

       //... 
      } 
     } 

row_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <CheckBox 
     android:id="@+id/checkBox" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New CheckBox" /> 
</LinearLayout> 
+0

ich versuche dies auch nicht funktioniert :( –

+0

@HarpreetSingh was ist das Problem jetzt? –

+0

danke seine Arbeit habe ich eine Ansicht über dieser Ansicht erstellen: | –

0

ich unten versucht, verwenden Sie Ihr Szenario nach.

public void startQuizClick() { 

     HashMap<String, String> h1 = new HashMap<>(); 

     for (int i = 0; i < 5; i++) { 

      // cb is custom checkbox 
      CheckBox cb = new CheckBox(this); 
      cb.setLayoutParams(new LinearLayout.LayoutParams(100,100)); 
      cb.setId(i); 
      cb.setEnabled(true); 
      cb.setTextColor(ContextCompat.getColor(Main2Activity.this,R.color.colorAccent)); 
      cb.setText("test"); 
      cb.setTextSize(14); 

      cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
       @Override 
       public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
        Log.e("item checked","ischedked"+isChecked); 
       } 
      }); 
      //linear layout 
      lli.addView(cb); 
     } 
    } 
Verwandte Themen