我更改了我的条目的布局,ListView
现在 clickListener 不再工作了,我不知道如何修复它以及为什么它不再工作了。
这是填充列表的代码:
private void setList() {
List<Subject> subjects = datasource.getAllSubjects();
ArrayList<HashMap> cards = new ArrayList<HashMap>();
for (int i=0; i < subjects.size(); i++) {
HashMap card = new HashMap();
card.put("listname", subjects.get(i).getSubject().toString());
long count = cardsource.getNumberOfCardsOfSubject(subjects.get(i).getSubject().toString());
card.put("count", "Number of Cards: " + count);
cards.add(card);
}
SimpleAdapter sa = new SimpleAdapter(
getApplicationContext(),
(List<? extends Map<String, ?>>) cards,
R.layout.cards,
new String[] { "listname", "count",},
new int[] { R.id.CARD_SCREEN_NAME, R.id.CARD_TEXT}) {
};
listView.setAdapter(sa);
}
我使用以下 XML 文件来定义每个条目的布局(选择这样做是因为我想添加子项):
<?xml version="1.0" encoding="utf-8"?>
<!-- A row of tweet data for display -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="20sp"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/CARD_SCREEN_NAME"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AndroidZA"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#000000" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView android:id="@+id/CARD_TEXT"
android:text="Hi, this is a tweet. It should be 140 characters or less"
android:paddingRight="5dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="#000000"/>
</LinearLayout>
</LinearLayout>
这是我的点击监听器:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
// TODO Auto-generated method stub
Object item = listView.getAdapter().getItem(position);
selectedItem = item.toString();
goToDelete();
}
});
这是goToDelete()
我用来转到新的 -Method的方法Acitity
。我通过 aString
是Intent
因为我需要有关即将到来的所选主题的信息Activity
。问题可能是我在 ClickListener 中没有正确获取这些信息:
Object item = listView.getAdapter().getItem(position);
selectedItem = item.toString();
但即使没有,goToDelete()
也不会被调用。有人可以帮我解决这个问题吗?如果您需要更多信息,请告诉我!