2016-07-11 17 views
0

Ich erstelle eine Beispielanwendung mit einer Activity [mit ListView und Button] in Layout-Datei. ListView ist benutzerdefiniert und enthält [Label/Name und CheckBox]. Ich möchte einen Code schreiben, der den Text der Button aus der Adapterklasse ListView basierend auf List Item CheckBox check [T/F] ändern wird.Wie aktualisiere ich die Activity UI basierend auf der Auswahl von ListView-Elementen?

+0

@SathishKumarJ Wie Adapter-Klasse kommt es zu verwalten, obwohl obige Verfahren UI aktualisieren hilft. Weil die Button-Instanz in der Aktivitätsklasse ist, die ich aus der Adapterklasse behandeln muss. Bitte lesen Sie die Frage sorgfältig durch. – VVB

+0

Ich denke, dass Sie Schnittstellen verwenden können. Basierend auf onCheckCheckBox callBack können Sie den Text ändern .. – Raghavendra

+0

@Raghavendra Bitte lesen Sie die Frage sorgfältig & oben Kommentar zu. – VVB

Antwort

0
 listView.setOnItemClickListener(new OnItemClickListener() 
      { 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
       { 
        // When clicked, show a toast with the TextView text 
        AppListOfAllApps Selecteditems = (AppListOfAllApps) parent.getItemAtPosition(position); 
        if (view != null) 
        { 
         CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkBox1); 
         Selecteditems = (AppListOfAllApps) checkBox.getTag(); 
         //here you will get the selected item you may also get the text from it accordingly and then using using button variable just set text 
button.settext("whatever"); 
        } 
       } 
      }); 
0

In Aktivität:

public class Your_Activity extends Activity implements OnCheckListener// Implement your listener here 

@Override 
public void OnCheck(int position) { 
    // TODO Auto-generated method stub 
    // notify your activity component here 
} 

In Adapterklasse:

private OnCheckListener listener; 

public interface OnCheckListener { 
    public void OnCheck(int position); 
} 

public Your_adapter_constructor(OnCheckListener listener) { 
    // TODO Auto-generated constructor stub 
    this.listener = listener; 
} 

// On your getView() 
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
       @Override 
       public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
        listener.OnCheck(position);// If you want to pass some value add it here 
       } 
      }); 
+0

Versuchte Ihren Code. Hat nicht funktioniert. Es geht nicht nur in die Listener-Methode von Activity. – VVB