好的,标题可能不清楚,这就是我想要做的:我有 ListView 并且在每一行内都有一些文本和一个按钮。我正在为每个按钮(在我的自定义列表适配器中)设置监听器,如下所示:
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater li;
li = LayoutInflater.from(context);
convertView = li.inflate(R.layout.list_item, null);
}
Item elem = elems.get(position);
TextView mainText = (TextView) convertView.findViewById(R.id.main_text);
TextView sideText = (TextView) convertView.findViewById(R.id.side_text);
mainText.setText(elem.desc);
sideText.setText(timestampToString(elem.date));
Button againButton = (Button) convertView
.findViewById(R.id.itemAgainButton);
againButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// onClick actions
}
});
现在在 onClick 方法中,我需要访问创建当前行的 Item 对象。我不确定是否清楚我想做什么。在这里,我在我的 Activity 类中的 ListView 元素上设置监听器
lista.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Item item = (Item) parent.getItemAtPosition(position);
Intent i = new Intent(getApplicationContext(),
DidItItemActivity.class);
i.putExtra("id", item.id);
startActivity(i);
}
});
我可以使用parent.getItemAtPosition(position)
它给了我我需要的东西。我怎样才能在适配器类中做同样的事情?