通过循环动态添加了一堆自定义的控件,怎么给这些控件绑定事件监听器啊? 本帖最后由 geduo_83 于 2012-06-18 16:05:33 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 relLayout = (RelativeLayout)findViewById(R.layout.relLayout); for(int i=0;i<listBoxPoint.size();i++){ BoxPoint boxPoint = listBoxPoint.get(i); BoxView boxView = new BoxView(this,boxPoint,255); boxView.setId(i); boxView.setTag(i); relLayout.addView(boxView); boxView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), v.getTag()+"", Toast.LENGTH_SHORT).show(); } }); } 会不会是因为加入的这么多View,大小,位置都一样,最后添加的那个在最上面,响应触摸时直接屏蔽了下面的View?试试把这些个View放置到不同的位置上去 我昨天也遇到跟楼主一样的问题 动态添加组件的同时为组件注册点击事件的时候 ,前面的事件触发的时候也是监听的最后一个控件。。 我想问问楼主还能想起来以前是怎么解决的么 ...... 真心求助! Thanks 感觉可以用listview来实现动态增加记录的功能 如果用Listview 对性能会有影响 老大不让用Listview 必须用动态添加组件 这样:BoxView boxView[] = new BoxView[listBoxPoint.size()];relLayout = (RelativeLayout)findViewById(R.layout.relLayout); for(int i=0;i<listBoxPoint.size();i++){ BoxPoint boxPoint = listBoxPoint.get(i); boxView[i] = new BoxView(this,boxPoint,255); relLayout.addView(boxView); boxView[i].setOnClickListener(this); }让Activity类实现OnClickListner,然后再onClick方法里面判断是哪个boxView被点击了 android AIDL项目的服务端项目代码中没有客户端项目代码中的aidl文件 Android 虚拟机的问题 一个小程序的xml布局文件显示不出 程序间(进程间?)数据交互的问题 关于读文件的问题 百思不得其解,关于立方体旋转动画(垂直方向) GridView显示问题 Android WebView开发问题及优化汇总 求助>_<!关于Handler更新数据的问题 求助 restartPackage骗人呢,有没有可以真正重新启动的函数? 如何在一个activity动态加载另外的activity类?
for(int i=0;i<listBoxPoint.size();i++){
BoxPoint boxPoint = listBoxPoint.get(i);
BoxView boxView = new BoxView(this,boxPoint,255);
boxView.setId(i);
boxView.setTag(i);
relLayout.addView(boxView);
boxView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), v.getTag()+"", Toast.LENGTH_SHORT).show();
}
});
}
Thanks
BoxView boxView[] = new BoxView[listBoxPoint.size()];
relLayout = (RelativeLayout)findViewById(R.layout.relLayout);
for(int i=0;i<listBoxPoint.size();i++){
BoxPoint boxPoint = listBoxPoint.get(i);
boxView[i] = new BoxView(this,boxPoint,255);
relLayout.addView(boxView);
boxView[i].setOnClickListener(this);
}让Activity类实现OnClickListner,然后再onClick方法里面判断是哪个boxView被点击了