ich eine benutzerdefinierte Liste Adapter für eine Listenansicht innerhalb einer Android-Anwendung habenProbleme mit Verabschiedung Kontext
ich habe gerade eine Erweiterung der applicaion Klasse, um einige globale Variablen zu speichern implimented
bei der Einstellung oder die Einstiegs- Variable i habe Kontext passieren
unten ist die Funktion des getView CustomListView
im Versuch, eine globale Variable einzustellen (im OnClickListener), indem sie mit dem gleichen Zusammenhang vorbei, die ich verwende erfolgreich auf eine Absicht Momente später.
aber ich die folgende Fehlermeldung
04-08 22:11:17.534 21919-21919/com.example.alex.camerascan4 E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.alex.camerascan4, PID: 21919
java.lang.ClassCastException: com.example.alex.camerascan4.CategoryActivity cannot be cast to com.example.alex.camerascan4.MyApplication
at com.example.alex.camerascan4.CustomListView$1.onClick(CustomListView.java:74)
ive auch versucht, die view.getContext Methode für die verfügbaren Ansichten verwenden, aber es ist immer noch nicht funktioniert
public View getView(final int position, final View convertView, final ViewGroup parent) {
// TODO Auto-generated method stub
Holder holder=new Holder();
final View rowView;
rowView = inflater.inflate(R.layout.activity_category_listitem, null);
holder.tv=(TextView) rowView.findViewById(R.id.textView1);
holder.img=(ImageView) rowView.findViewById(R.id.imageView1);
holder.tv.setText(mDataset.get(position));
holder.img.setImageResource(R.drawable.camera);
rowView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Toast.makeText(context, "You Clicked "+mDataset.get(position), Toast.LENGTH_LONG).show();
((MyApplication) context).setRequestID(mDatamap.get(position));
// login success and move to main Activity here.
Intent myIntent = new Intent(v.getContext(), DocumentActivity.class);
((Activity) context).startActivity(myIntent);
}
});
return rowView;
}
Statisch auf einen Kontext zu halten ist ein Anti-Pattern, das zu Speicherlecks führt. Tu das nicht. –