listview滑动的时候报错java.lang.IllegalArgumentException

康康六六六 2012-06-17 07:15:19
06-17 10:53:59.880: E/AndroidRuntime(940): at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:2564)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.view.FocusFinder.findNextFocus(FocusFinder.java:73)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.widget.ScrollView.arrowScroll(ScrollView.java:820)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.widget.ScrollView.executeKeyEvent(ScrollView.java:350)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.widget.ScrollView.dispatchKeyEvent(ScrollView.java:318)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
06-17 10:53:59.880: E/AndroidRuntime(940): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1667)
06-17 10:53:59.880: E/AndroidRuntime(940): at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1102)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.app.Activity.dispatchKeyEvent(Activity.java:2063)
06-17 10:53:59.880: E/AndroidRuntime(940): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1643)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2471)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2441)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.view.ViewRoot.handleMessage(ViewRoot.java:1735)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.os.Handler.dispatchMessage(Handler.java:99)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.os.Looper.loop(Looper.java:123)
06-17 10:53:59.880: E/AndroidRuntime(940): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-17 10:53:59.880: E/AndroidRuntime(940): at java.lang.reflect.Method.invokeNative(Native Method)
06-17 10:53:59.880: E/AndroidRuntime(940): at java.lang.reflect.Method.invoke(Method.java:521)
06-17 10:53:59.880: E/AndroidRuntime(940): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-17 10:53:59.880: E/AndroidRuntime(940): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-17 10:53:59.880: E/AndroidRuntime(940): at dalvik.system.NativeStart.main(Native Method)
...全文
633 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
microtemple 2012-11-28
  • 打赏
  • 举报
回复
解决方法: @Override public View getView(int position, View convertView, ViewGroup parent) { //abandon current focus Activity activity = (Activity) getContext(); View currentFocus = activity.getCurrentFocus(); if (currentFocus != null) { currentFocus.clearFocus(); } 是由于IME与界面造成的
CNnumen 2012-07-03
  • 打赏
  • 举报
回复
看Log貌似是某个item(view)没有加入到当前这个list(viewGroup)中
康康六六六 2012-06-29
  • 打赏
  • 举报
回复
Override
public View getView(int position, View convertView, ViewGroup vireGroup) {
int type = getItemViewType(position);

ViewHolder0 holder0 = null;
ViewHolder1 holder1 = null;
ViewHolder2 holder2 = null;

switch (type) {
case DataUtil.LISTVIEW_ZERO:
holder0 = new ViewHolder0();
if(convertView == null){
convertView = inflater.inflate(R.layout.registerzero, null);
holder0.textView = (TextView) convertView.findViewById(R.id.register_zerotext);
holder0.editText = (EditText) convertView.findViewById(R.id.register_zeroedit);
convertView.setTag(holder0);
} else {
holder0 = (ViewHolder0) convertView.getTag();
}
holder0.textView.setText(listItems.get(position).getCname());
break;

case DataUtil.LISTVIEW_FIRST:
holder1 = new ViewHolder1();
if(convertView == null){
convertView = inflater.inflate(R.layout.registerfirst, null);
holder1.textView = (TextView) convertView.findViewById(R.id.register_spinner2Name);
holder1.spinner = (Spinner) convertView.findViewById(R.id.register_spinner2);
convertView.setTag(holder1);
} else {
holder1 = (ViewHolder1) convertView.getTag();
}
holder1.textView.setText(listItems.get(position).getCname());

final Map<String, Object> spinnerData = listItems.get(position).getDownlist();
final List<String> dataList = new ArrayList<String>();
for(Iterator i= spinnerData.keySet().iterator(); i.hasNext();){
String key = (String) i.next();
dataList.add(key);
}

setAdapter(holder1.spinner, dataList);
holder1.spinner.setOnItemSelectedListener((OnItemSelectedListener) context);
holder1.spinner.setTag(dataList);
break;

case DataUtil.LISTVIEW_SECOND:
holder2 = new ViewHolder2();
if(convertView == null){
convertView = inflater.inflate(R.layout.registerother, null);
holder2.textView = (TextView) convertView.findViewById(R.id.register_otherName);
holder2.editText = (EditText) convertView.findViewById(R.id.register_otherContent);
holder2.dataPicker = (DatePicker) convertView.findViewById(R.id.register_otherdatePicker1);
convertView.setTag(holder2);
} else {
holder2 = (ViewHolder2) convertView.getTag();
}
holder2.textView.setText(listItems.get(position).getCname());

if("NUMERIC".equals(listItems.get(position).getDataType())){ //数字类型
holder2.editText.setKeyListener(new DigitsKeyListener(false, true)); //设置输入内容只能是数字
holder2.editText.setHint(R.string.register_hint);
}else if("DATE".equals(listItems.get(position).getDataType())){ //日期类型
//添加日期控件
holder2.editText.setVisibility(View.GONE);
holder2.dataPicker.setVisibility(View.VISIBLE);
holder2.dataPicker.init(mYear, mMonth, mDay, mDateChangedListener);
}
break;

default:
break;
}
return convertView;
}
康康六六六 2012-06-29
  • 打赏
  • 举报
回复
我没有item的点击事件,就是在滑动的时候报错
康康六六六 2012-06-29
  • 打赏
  • 举报
回复
我没有item的点击事件,就是在滑动的时候报错
南瓜饼 2012-06-29
  • 打赏
  • 举报
回复
我觉得应该log下type的值看看 是不是你的type不符合任何一个case的判断条件
南瓜饼 2012-06-29
  • 打赏
  • 举报
回复
item的点击事件也贴出来~
neopick 2012-06-28
  • 打赏
  • 举报
回复
代码看看
南瓜饼 2012-06-28
  • 打赏
  • 举报
回复
代码贴出来
南瓜饼 2012-06-28
  • 打赏
  • 举报
回复
比如说 我定义一个全局的boolean变量 在listview的item点击事件中 加一个
if(boolean){你要实现的内容}
当listview填充数据的时候 把boolean设为false 填充完成的时候设为true
这样就算你不小心点到了item boolean为false 也不会执行item点击了
康康六六六 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
楼主应该是在滑动到底部时候加载数据的出的错吧 一般是我们在滑动的时候 可能不小心点到了某个item 然而listview正在加载数据 这样会造成 我们刚才点的第5个item就不是原来的item 这中时候就会报楼主说的错误了 解决的话 就是加个线程标志位 主要数据再加载的时候 让点击事件失效就行了
[/Quote]

嗯,就是楼上说的这个样子,不过这个线程标志位能说具体点么?
南瓜饼 2012-06-28
  • 打赏
  • 举报
回复
楼主应该是在滑动到底部时候加载数据的出的错吧 一般是我们在滑动的时候 可能不小心点到了某个item 然而listview正在加载数据 这样会造成 我们刚才点的第5个item就不是原来的item 这中时候就会报楼主说的错误了 解决的话 就是加个线程标志位 主要数据再加载的时候 让点击事件失效就行了
康康六六六 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
比如说 我定义一个全局的boolean变量 在listview的item点击事件中 加一个
if(boolean){你要实现的内容}
当listview填充数据的时候 把boolean设为false 填充完成的时候设为true
这样就算你不小心点到了item boolean为false 也不会执行item点击了
[/Quote]

我的数据都已经加载完毕了,listview中数据全部加载了,然后滑动listview的时候报这个错误
康康六六六 2012-06-27
  • 打赏
  • 举报
回复
你说的我都查过了,但是没有这样子的语句
phper2008 2012-06-27
  • 打赏
  • 举报
回复
楼主应该是在实例化某个对象时候参数不对,类似:
java.lang.IllegalArgumentException: parameter must be a descendant of this view


ListView view = new ListView(this);
如果在嵌套的类里实例化,应该是 XXXActivity.this,注意查看下有没有类似这种实例化的语句!
康康六六六 2012-06-27
  • 打赏
  • 举报
回复
06-27 06:28:24.340: E/AndroidRuntime(667): FATAL EXCEPTION: main
06-27 06:28:24.340: E/AndroidRuntime(667): java.lang.IllegalArgumentException: parameter must be a descendant of this view
06-27 06:28:24.340: E/AndroidRuntime(667): at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:2627)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:2564)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.view.FocusFinder.findNextFocus(FocusFinder.java:73)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.widget.ScrollView.arrowScroll(ScrollView.java:820)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.widget.ScrollView.executeKeyEvent(ScrollView.java:350)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.widget.ScrollView.dispatchKeyEvent(ScrollView.java:318)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
06-27 06:28:24.340: E/AndroidRuntime(667): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1667)
06-27 06:28:24.340: E/AndroidRuntime(667): at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1102)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.app.Activity.dispatchKeyEvent(Activity.java:2063)
06-27 06:28:24.340: E/AndroidRuntime(667): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1643)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2471)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2441)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.view.ViewRoot.handleMessage(ViewRoot.java:1735)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.os.Handler.dispatchMessage(Handler.java:99)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.os.Looper.loop(Looper.java:123)
06-27 06:28:24.340: E/AndroidRuntime(667): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-27 06:28:24.340: E/AndroidRuntime(667): at java.lang.reflect.Method.invokeNative(Native Method)
06-27 06:28:24.340: E/AndroidRuntime(667): at java.lang.reflect.Method.invoke(Method.java:521)
06-27 06:28:24.340: E/AndroidRuntime(667): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-27 06:28:24.340: E/AndroidRuntime(667): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-27 06:28:24.340: E/AndroidRuntime(667): at dalvik.system.NativeStart.main(Native Method)
AMinfo 2012-06-17
  • 打赏
  • 举报
回复
发完整Log和文件上来
石圣 2012-06-17
  • 打赏
  • 举报
回复
这是个非法参数异常,你应该还有一部分报错的信息没贴出来吧?都贴出来看看吧。

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧