以下是我的測試代碼創建列表視圖,列表視圖顯示成功,但是,點擊事件中有錯誤。我想創建一個發送硬編碼消息到新活動的意圖。然而,它顯示錯誤的線如何在Android的Listview中處理點擊事件?
Intent intent = new Intent(context, SendMessage.class);
所以,問題是,我應該爲這個類提供什麼?
此外,而不是硬編碼輸出消息,如何捕獲列表視圖行中的數據並傳遞給新的活動?例如第一行爲BBB,AAA,R.drawable.tab1_hdpi
。
謝謝。
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);
}
});
}
謝謝,無論如何,背景是什麼意思? – user782104
你能改說嗎? – Blackbelt
這意味着,Intent類中的第一個參數實際表示什麼? MainActivity.this是什麼意思?感謝文檔 – user782104