没有按预期看到logcat语句

时间:2011-03-29 23:21:09

标签: android android-emulator android-logcat

我有以下课程:

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”。

6 个答案:

答案 0 :(得分:2)

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

有关Logcat的详细信息,请参阅the Android documentation

答案 1 :(得分:0)

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

什么,你想要样本代码???阅读文档,在你的视图中,使用GestureDetector翻译onTouchEvent方法收到的MotionEvent ...... 啧 :)

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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

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

答案 5 :(得分:-1)

此外,logcat还有很多东西,并且不允许非常好的过滤。我设法让log4j在android上工作,它适用于电锯。这允许您记录长日志,而不是在需要时崩溃。

log4j support in Android