Wie gehe ich mit dem Klick-Ereignis in Listview in Android um?
Das Folgende ist mein Testcode zum Erstellen der Listenansicht, die Listenansicht wird erfolgreich angezeigt, es ist jedoch ein Fehler im Klickereignis aufgetreten. Ich möchte eine Absicht erstellen, eine Hardcode-Nachricht an eine neue Aktivität zu senden. Es wird jedoch ein Fehler für die Zeile angezeigt
Intent intent = new Intent(context, SendMessage.class);
Das Problem ist also, was soll ich für diese Klasse bereitstellen?
Anstatt die Ausgabenachricht hart zu codieren, wie werden die Daten in der Listenansicht erfasst und an die neue Aktivität übergeben? z.B.BBB,AAA,R.drawable.tab1_hdpi
für die erste Reihe.
Vielen Dank.
public class MainActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.example.ListViewTest.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<ListEntry> members = new ArrayList<ListEntry>();
members.add(new ListEntry("BBB","AAA",R.drawable.tab1_hdpi));
members.add(new ListEntry("ccc","ddd",R.drawable.tab2_hdpi));
members.add(new ListEntry("assa","cxv",R.drawable.tab3_hdpi));
members.add(new ListEntry("BcxsadvBB","AcxdxvAA"));
members.add(new ListEntry("BcxvadsBB","AcxzvAA"));
members.add(new ListEntry("BcxvBB","AcxvAA"));
members.add(new ListEntry("BvBB","AcxsvAA"));
members.add(new ListEntry("BcxvBB","AcxsvzAA"));
members.add(new ListEntry("Bcxadv","AcsxvAA"));
members.add(new ListEntry("BcxcxB","AcxsvAA"));
ListView lv = (ListView)findViewById(R.id.listView1);
Log.i("testTag","before start adapter");
StringArrayAdapter ad = new StringArrayAdapter (members,this);
Log.i("testTag","after start adapter");
Log.i("testTag","set adapter");
lv.setAdapter(ad);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Intent intent = new Intent(context, SendMessage.class);
String message = "abc";
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
});
}