我正在创建自定义listview适配器,它使用2 textview(tvA和tvB),一个微调器(具有固定的3个值)和一个按钮(okButton)。 列表的数据是动态填充的。 当按下buttonOk时,同时获取文本视图值以及微调器当前所选项目并为其加油。
我该怎么做?对不起我的英文。
答案 0 :(得分:0)
在你的getView()方法中填充你的值,添加这个监听器。
okButton.setOnClickListener(new OnItemClickListener(position, tvA, tvB, spinner));
并像这样创建OnItemClickListener类
private class OnItemClickListener implements View.OnClickListener {
private int mPosition;
OnItemClickListener(int position, TextView tvA, TextView tvB, Spinner spinner) {
mPosition = position;
...
}
@Override
public void onClick(View arg0) {
// handle everything here
}
}
答案 1 :(得分:0)
如果所有视图都是兄弟姐妹,那么请使用以下代码
((Button) view.findViewById(R.id.okButton))
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
View parentRow = (View) v.getParent();
RelativeLayout rel = (RelativeLayout) parentRow.getParent() ;
TextView tvA = (TextView) rel.findViewById(R.id.tvA);
TextView tvB = (TextView) rel.findViewById(R.id.tvB);
Spinner sp = (spinner) rel.findViewById(R.id.spinner1);
//list view position-
ListView listView = (ListView) parentRow
.getParent();
int position = listView
.getPositionForView(parentRow);
Toast.makeText(context, tvA.getText().toString() + " " + position,Toast.LENGTH_SHORT).show();
Toast.makeText(context, tvB.getText().toString() + " " + position,Toast.LENGTH_SHORT).show();
Toast.makeText(context, spinner.getSelectedItem().toString() + " " + position, Toast.LENGTH_SHORT).show();
}
});