当findViewById时,Android ScrollView导致应用程序崩溃(R.id

时间:2012-07-17 20:53:22

标签: java android crash scrollview

我无法在main.xml中设置Horizo​​ntal ScrollView的位置,因为我无法使用下面的代码来定位它。这个方法在定位TextViews或Buttons时总是对我有用,所以我不确定为什么ScrollView应该被区别对待。

ScrollView scrollview1 = (ScrollView)findViewById(R.id.scrollview1);

到目前为止,我一直无法找到某人做类似事情的工作示例,我可以成功地将其实现到我的代码中,以便将我的栏滚动到需要的位置。

以下是我在应用程序崩溃期间显示的错误日志

dalvikvm threadid=1: thread exiting with uncaught exception (group=0x409c01f8)

AndroidRuntime FATAL EXCEPTION: main

AndroidRuntime java.land.ClassCastException: android.widget.HorizontalScrollView cannot be cast to android.widget.ScrollView

AndroidRuntime at com.testButtons.TestButtonsActivity.onKeyDown(TestButtonsActivity.java)

这是保存有问题代码的代码块。

我正在使用android返回键退出菜单并返回main.xml,水平scrollview1从左侧设置40dp。

    public boolean onKeyDown(int keyCode, KeyEvent event)  {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
            if(pageNum < 4){

                setContentView(R.layout.main);

                ScrollView scrollview1 = (ScrollView)findViewById(R.id.scrollview1);
                //scrollview1.scrollTo(40,0);

            }else if(pageNum >= 4 && pageNum < 20){

                setContentView(R.layout.main2);
                pageNum=0;
            }

            return true;
        }

        return super.onKeyDown(keyCode, event);
    }

我对Android应用程序开发和这种形式也很陌生;这是我的第一篇关于我的第一个应用程序商店值得的应用程序。

我很感激你花时间阅读我的问题,而且我知道其他的android noobies可能会遇到同样/类似的问题而且发现这很有用。

1 个答案:

答案 0 :(得分:1)

当你将它转换为ScrollView时,它实际上是一个Horizo​​ntalScrollView。 ScollView不是Horizo​​ntalScrollView的父类,因此抛出了您的错误。变化

ScrollView scrollview1 = (ScrollView)findViewById(R.id.scrollview1);

HorizontalScrollView scrollview1 = (HorizontalScrollView)findViewById(R.id.scrollview1);