【问题标题】:Not seeing logcat statements as expected没有按预期看到 logcat 语句
【发布时间】:2011-03-29 23:21:09
【问题描述】:

我有以下课程:

public class SplashActivity extends Activity implements OnKeyListener, OnTouchListener {
    private LinearLayout mLinearLayout;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mLinearLayout = new LinearLayout(this);
        mLinearLayout.addView(getBgImg());
        mLinearLayout.setOnKeyListener(this);
        mLinearLayout.setOnTouchListener(this);
        mLinearLayout.setFocusable(true);
        setContentView(mLinearLayout);
    }

    private ImageView getBgImg() {
        ImageView imgV = new ImageView(this);
        imgV.setImageResource(R.drawable.splash);
        imgV.setAdjustViewBounds(true);
        imgV.setLayoutParams(new Gallery.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        return imgV;
    }

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        System.out.println("test2");
        return true;
    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        System.out.println("test1");
        return true;
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_S:
            // mDoSat = !mDoSat;
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}

不幸的是,尽管按下模拟器上的按钮并单击屏幕,但 LogCat 中没有打印“test1”或“test2”。

【问题讨论】:

  • 您应该将其中任何一个标记为答案.. 或说出他们为什么没有帮助!

标签: android android-emulator android-logcat


【解决方案1】:

您应该使用Log.d("TAG", "test1"),d 用于调试,因此您也可以使用其他的 ex。 Log.i ,这将写入您的 LogCat。

有关 Logcat 的更多信息,请参阅 the Android documentation

【讨论】:

    【解决方案2】:

    我不相信触摸事件会在孩子被按下时触发。您需要将侦听器添加到我认为的 getBgImg() 视图中。

    【讨论】:

      【解决方案3】:

      覆盖:活动中的 onTouchEvent(...) public boolean onTouchEvent(MotionEvent 事件) 自:API 级别 1 当触摸屏事件未被其下的任何视图处理时调用。这对于处理在窗口边界之外发生的触摸事件非常有用,因为没有视图可以接收它。

      如您所见,当触摸屏事件未被其下的任何视图处理时,会调用 onTouchEvent。

      所以,我建议使用 onClickListener,并在 onTouchEvent 中返回 false。

      【讨论】:

        【解决方案4】:

        在 View.onTouchEvent(MotionEvent ev) 方法中使用 GestureDetector

        什么,你想要示例代码???阅读文档,在您的视图中,使用 GestureDetector 转换 onTouchEvent 方法接收到的 MotionEvent ... 嘘 :)

        【讨论】:

          【解决方案5】:

          有时我会遇到 logcat 不显示任何内容的情况。但是,如果我在调试中运行该应用程序一次,它通常可以解决此问题。

          【讨论】:

            猜你喜欢
            • 2013-04-12
            • 2011-11-29
            • 1970-01-01
            • 2017-06-18
            • 2022-11-26
            • 2021-06-14
            • 2020-07-26
            相关资源
            最近更新 更多