行がいくつかの TextViews とボタンで構成される ListView があります。ユーザーがボタンを押すと、そのボタンを格納している親を ListView から削除したいと考えています。ただし、ネストされたメソッド (onClickListener) 内からカスタム ArrayAdapter のフィールドにアクセスするにはどうすればよいですか? 作業する必要があるのは View v だけです。 v.getParent() を複数回呼び出す必要がありますか、それとももっと良い方法がありますか?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
Action item = this.getItem(position);
if (convertView == null) {
convertView = inflater.inflate(R.layout.action_holder_layout,
parent, false);
holder = new ViewHolder();
holder.title = (TextView) convertView
.findViewById(R.id.action_holder_title);
holder.finishBtn = (Button) convertView
.findViewById(R.id.finish_action_button);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
holder.title.setText(item.getActionName());
holder.finishBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//REMOVE THE ACTION FROM THE ADAPTER'S ARRAYLIST
}
});
return convertView;
}
static class ViewHolder {
private TextView title;
private Button finishBtn;
}