有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将单击事件转发到Launcher应用程序?

我有一个程序化的小部件放在主屏幕上,我让用户可以把它拖到他想要的地方。我在视图中添加了一个OnTouchListener来获取运动事件(这样我下次可以记住屏幕上的视图位置),它会在我点击主屏幕的任何地方触发,即使在我的视图之外

我想实现的是推进这项活动。操作取决于Launcher应用程序,这样,如果用户单击应用程序图标,该应用程序将被启动。或者,在我的视图之外单击时不接收此事件。以下是我所做的:

 LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 inflatedViewWidget = inflater.inflate(R.layout.mtc_appwidget, null);

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                        WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
                        0,
                        PixelFormat.TRANSLUCENT);
final WindowManager wm = (WindowManager) context.getSystemService(WINDOW_SERVICE);
wm.addView(inflatedViewWidget, params);

OnTouchListener:

inflatedViewWidget.setClickable(true);
inflatedViewWidget.setOnTouchListener(new View.OnTouchListener() {
       public boolean onTouch(View v, MotionEvent event) {

                        int action = event.getAction();
                        switch (action) {
                            case MotionEvent.ACTION_UP:
                                //how to forward event to Launcher app?
                                break;

共 (1) 个答案