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
A
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
@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
Ich denke, dass Sie Schnittstellen verwenden können. Basierend auf onCheckCheckBox callBack können Sie den Text ändern .. – Raghavendra
@Raghavendra Bitte lesen Sie die Frage sorgfältig & oben Kommentar zu. – VVB