开发者社区> 问答> 正文

请问android中dispatchTouchEvent方法里为何不能用toast显示信息?

是在一个自定义轮滑的viewpager里的dispatchTouchEvent里写的toast。

public boolean dispatchTouchEvent(MotionEvent ev) {
    switch (ev.getAction()) {
    case MotionEvent.ACTION_DOWN:

        stopScroll();
        break;
    case MotionEvent.ACTION_MOVE:

        break;
    case MotionEvent.ACTION_UP:

        if((ev.getEventTime()-ev.getDownTime())<100)
        {
            Toast.makeText(context, getCurrentItem(), 0).show();//这里出错
        }
        startScroll();
        break;
    default:
        break;
    }
    return super.dispatchTouchEvent(ev);
}

错误信息:

03-26 10:31:20.445: W/ResourceType(6672): No package identifier when getting value for resource number 0x00000001
03-26 10:31:20.445: E/InputEventReceiver(6672): Exception dispatching input event.
03-26 10:31:20.445: E/MessageQueue-JNI(6672): Exception in MessageQueue callback: handleReceiveCallback
03-26 10:31:20.449: E/MessageQueue-JNI(6672): android.content.res.Resources$NotFoundException: String resource ID #0x1
03-26 10:31:20.449: E/MessageQueue-JNI(6672): at android.content.res.Resources.getText(Resources.java:244)
03-26 10:31:20.449: E/MessageQueue-JNI(6672): at android.widget.Toast.makeText(Toast.java:268)
03-26 10:31:20.449: E/MessageQueue-JNI(6672): at com.example.baby.widget.AutoScrollViewPager.dispatchTouchEvent(AutoScrollViewPager.java:82)
03-26 10:31:20.449: E/MessageQueue-JNI(6672): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)

展开
收起
爵霸 2016-03-05 15:30:39 2446 0
1 条回答
写回答
取消 提交回答
  • Toast.makeTest方法有两个参数,其中一个方法第二个参数是@StringRes int resId,也就是字符串资源id。。
    所以你的getCurrentItem返回了int型,而这个值没有对应的字符串
    写成这样
    Toast.makeText(context, getCurrentItem()+"", 0).show();

    2019-07-17 18:53:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载