【问题标题】:set onclicklistener for button inside customlistview android为customlistview android中的按钮设置onclicklistener
【发布时间】:2013-11-08 18:45:42
【问题描述】:

我正在使用 baseadapter 创建自定义列表视图。我的列表视图包含文本视图、两个按钮和一个编辑文本。这两个按钮用于加法和减法。当我单击加号按钮时,我希望 edittext 中的值增加 1,并且我将 edittext 的默认值保留为 1。

这是 mycustombaseadapter 中用于 listview 的 getView 方法

public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
        final ViewHolder holder;
        int i=1;
        if (convertView == null) {


       convertView = mInflater.inflate(R.layout.each_menu, null);
       holder = new ViewHolder();


      holder.txtoutletname = (TextView) convertView.findViewById(R.id.menuname);
      holder.price = (TextView) convertView.findViewById(R.id.cost);
      holder.plus = (Button) convertView.findViewById(R.id.plusbut);
      holder.minus = (Button) convertView.findViewById(R.id.minusbut);
      holder.qua = (EditText) convertView.findViewById(R.id.quanedit);
      holder.plus.setId(i);

      holder.minus.setId(i); 
      i++;
       convertView.setTag(holder);
      } else {
       holder = (ViewHolder) convertView.getTag();
      }

      holder.txtoutletname.setText(searchArrayList.get(position).getmenuname());
      holder.price.setText(searchArrayList.get(position).getcost());




      holder.plus.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                // TODO Auto-generated method stub
                 String vall=holder.qua.getText().toString();
                 int num=Integer.parseInt(vall);
                 num=num+1;
                 holder.qua.setText(num);
                 Log.d("plus",vall);

            }
        });





      return convertView;

}

这是 ViewHolder 类

static class ViewHolder {
    TextView txtoutletname; 
    TextView price;
    NumberPicker np;
    Button plus;
    Button minus;
    EditText qua;

    }

现在,当我单击 + 按钮时,活动将被强制关闭。 请帮我弄到这个。

String.valueOf() 为我工作。 谢谢

但现在由于按钮是可点击的,因此列表视图不可点击.. 我希望按钮和列表视图都应该是可点击的。 我已经添加了 itemclicklistener,它在没有这些按钮的情况下工作..

【问题讨论】:

    标签: android android-listview onclicklistener baseadapter


    【解决方案1】:

    替换这个

    holder.qua.setText(num);
    

    通过

    holder.qua.setText(String.valueOf(num));
    

    因为你有这个

    int num=Integer.parseInt(vall); // num is an int value
    num=num+1;
    

    public final void setText (int resid)

    在您的情况下,它会查找具有 id 的资源。如果没有找到,你会得到 ResourceNotFoundException。

    你需要什么

    public final void setText (CharSequence text)CharSequence 作为参数。

    所以使用String.valueOf(num)

    【讨论】:

    • 这是正确答案,这是一个很常见的错误,如果你想在TextView中显示一个数字你必须使用String.valueOf(),否则它会调用setText(int resId)
    猜你喜欢
    • 1970-01-01
    • 2012-09-24
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2015-02-18
    • 2018-01-10
    相关资源
    最近更新 更多