0

行がいくつかの 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;
  }
4

2 に答える 2