Ich möchte den Wert der Liste (itemvalue) von der Adapterklasse in eine Aktivität übergeben. Da ich die Arrayadapterklasse und nicht die Aktivität erweitern, kann ich Sharedreference nicht verwenden. ich nehme diese Werte in die Arraylist (itemname) innerhalb eines listener.Here ist der Code, den ich tried.Can jemand mir helfen, dieses Problem zu lösen ....Wie übergeben Sie einen Wert von Anadapter-Klasse an Aktivität
public class CustomArrayAdapter extends ArrayAdapter<Model> {
protected static final String MODE_PRIVATE = null;
private final List<Model> list;
private final Activity context;
public CustomArrayAdapter(Activity context, List<Model> list) {
super(context, R.layout.customlistlayout, list);
this.context = context;
this.list = list;
}
static class ViewHolder {
protected TextView mText;
protected CheckBox mCheckbox;
public string getItemAtPosition(int i) {
// TODO Auto-generated method stub
return null;
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
final ArrayList<String> itemname = new ArrayList<String>();
LayoutInflater inflator = context.getLayoutInflater();
view = inflator.inflate(R.layout.customlistlayout, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.mText = (TextView) view.findViewById(R.id.settings_label);
viewHolder.mCheckbox = (CheckBox) view.findViewById(R.id.check);
Activity activity = new SettingsActivity();
viewHolder.mCheckbox.setOnCheckedChangeListener(activity);
viewHolder.mCheckbox
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
Model element = (Model) viewHolder.mCheckbox
.getTag();
element.setSelected(buttonView.isChecked());
**itemname.add(element.getName());**
}
});
for (String myValue : itemname) {
System.out.println(myValue);
}
view.setTag(viewHolder);
viewHolder.mCheckbox.setTag(list.get(position));
} else {
view = convertView;
((ViewHolder) view.getTag()).mCheckbox.setTag(list.get(position));
}
ViewHolder holder = (ViewHolder) view.getTag();
holder.mText.setText(list.get(position).getName());
holder.mCheckbox.setChecked(list.get(position).isSelected());
return view;
}
}
'CustomArrayAdapter' von wo aus man diese Klasse nennen ich meine aus mainActivity>? –
Implementieren Sie die CustomArrayAdapter.getList() -Methode, um die ArrayList-Eigenschaft zurückzugeben, und rufen Sie sie dann auf, wenn Sie die ArrayList in einer Aktivität abrufen möchten. – yorkw