Ich habe eine App, die Listview mit Switch-Compat enthalten, die in Listview-Adapter definieren. Was ich aktivieren/deaktivieren möchte, wende eine Methode in Aktivität, die Listview enthält. Wie mache ich das.Wie man toggle auf denen in listview Adapter von Aktivität in Android definieren?
Code des Adapters: -
listViewHolder.switchCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(final CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
new AlertDialog.Builder(mContext, R.style.AppCompatAlertDialogStyle).setTitle("Warning").setMessage("You want to whiteList this application?").setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//retrieve data from shared preference
String jsonScore = sharedPreference.getAppsArrayListData();
Type type = new TypeToken<ArrayList<WhiteListModel>>() {
}.getType();
existingDataSet = gson.fromJson(jsonScore, type);
//Adding items in Dataset
AllAppList appList = listStorage.get(position);
whiteListModel.setName(appList.getName());
whiteListModel.setPackName(appList.getPackName());
if (existingDataSet != null) {
existingDataSet.add(whiteListModel);
saveScoreListToSharedpreference(existingDataSet);
} else {
newDataSet.add(whiteListModel);
saveScoreListToSharedpreference(newDataSet);
}
//Notifying adapter data has been changed.....
notifyDataSetChanged();
listViewHolder.switchCompat.setChecked(false);
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
listViewHolder.switchCompat.setChecked(false);
}
}).show();
}
}
});
Code Listenansicht klicken: -
private List<AllAppList> getInstalledApps() {
List<AllAppList> res = new ArrayList<AllAppList>();
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
if ((!isSystemPackage(p))) {
if (p.applicationInfo.packageName.equalsIgnoreCase("com.soopermo.batterybooster")){
continue;
}
boolean isWhiteList = false;
if (whiteListModels != null) {
for (int j = 0; j < whiteListModels.size(); j++) {
model = whiteListModels.get(j);
Log.e(TAG, "p*****" + model.getPackName());
if (p.applicationInfo.packageName.equalsIgnoreCase(model.getPackName())) {
// This package is whitlist package
isWhiteList = true;
//Here is want to enable/disable switch
}
}
}
Was ich von deiner Frage verstanden habe ist: du hast ein listView welches itemView als textView und einen switch hat Bei Änderung des Schalters in Ihrer Listenansicht möchten Sie diese Änderung in Ihrer Aktivität widerspiegeln. d. h. Sie ändern etwas in Ihrem Artikel im Adapter, es sollte diese Änderung an Aktivität melden, an die der Adapter angeschlossen ist .. Ist das so? – Ashwani
Nein Ich möchte den Switch-Status von einer Methode ändern, die sich in einer Aktivität befindet. – Raghav
swicth ist in der Adapterklasse – Raghav