1.) Mein main.xml
enthält:InvalidCastException auf ListItem Click (Mono für Android)
<ListView
android:id="@+id/lsym"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
2.) Nach der Liste bevölkern, ich zuweisen, um es ein adapter
wie folgt:
lsym.Adapter=new SymbolAdapter(this,result);
wobei result
ein DataTable
ist.
3.) Innerhalb SymbolAdapter
habe ich verwendet:
convertView = inflater.Inflate(Resource.Layout.list_symbol, null);
4.)list_symbol.xml
enthält:
<RelativeLayout android:id="@+id/symbolLayout"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<TextView
android:id="@+id/tvsym"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
5.) Und schließlich für Listenelement klicken , Verwende ich folgenden Codeausschnitt:
lsym.ItemClick+= SearchItem_Click;
&
private void SearchItem_Click(object sender, ItemEventArgs e)
{
string company=((TextView)e.View).Text;
Toast.MakeText(this, "Selected="+company,ToastLength.Short).Show();
}
wie angegeben here.
Aber wenn ich ein Listenelement klicken, es gibt mir folgende Fehlermeldung:
System.InvalidCastException: Cannot cast from source type to destination type.
SearchItem_Click (object,Android.Widget.ItemEventArgs)
bei ((TextView)e.View).Text
.
JEDE IDEE, WARUM DIESES PASSIERT? Ich weiß, ich habe viel Code, aber als Anfänger bin ich Mono für Android, so dass jede Hilfe geschätzt.
final TextView Firma = (TextView) findViewById (R.id. "The_id_of_y_textview"); – CodePrimate
debug code und check was genau ist e.View ... sicherlich nicht TextView – Selvin
@litemode ich muss nur sagen dass ... lol ... findViewById aufrufen wird hier nicht funktionieren da du es von Activity aufrufen wirst ... aber es kann helfen, wenn er e.View.findViewById ... verwendet – Selvin