为customlistview android中的按钮设置onclicklistener
我正在使用baseadapter创建自定义listview。我的listview包含textview、两个按钮和一个edittext。这两个按钮用于加法和减法。当我单击加号按钮时,我希望edittext中的值增加1,并且我将edittext的默认值保留为1 这是用于listview的mycustombaseadapter中的getView方法为customlistview android中的按钮设置onclicklistener,android,android-listview,onclicklistener,baseadapter,Android,Android Listview,Onclicklistener,Baseadapter,我正在使用baseadapter创建自定义listview。我的listview包含textview、两个按钮和一个edittext。这两个按钮用于加法和减法。当我单击加号按钮时,我希望edittext中的值增加1,并且我将edittext的默认值保留为1 这是用于listview的mycustombaseadapter中的getView方法 public View getView(int position, View convertView, ViewGroup parent) { /
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()对我有用。
谢谢
但是现在按钮可以点击,列表视图就不能点击了。。
我希望buton和listview都可以点击。
我添加了没有这些按钮的ClickListener项。替换此项
holder.qua.setText(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)
这是正确的答案,这是一个非常常见的错误,如果要在文本视图中显示数字,必须使用String.valueOf(),否则它将调用setText(int resId)
int num=Integer.parseInt(vall); // num is an int value
num=num+1;