0

以下のコードを使用してターゲットに設定できないため、main.xmlでHorizo​​ntalScrollViewの位置を設定できません。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のリターンキーを使用してメニューを終了し、左から水平スクロールビュー1を40dpに設定してmain.xmlに戻ります。

    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アプリの開発とこのフォームにもかなり慣れていません。これは私の最初のアプリストアに値するアプリに関する私の最初の投稿です。

あなたが私の質問を読んでくれたことに感謝します、そして私は他のアンドロイドヌービーがおそらくこれと同じ/同様の問題に遭遇し、これが役に立つと思うことを知っています。

4

1 に答える 1

1

実際には Horizo​​ntalScrollView であるのに、ScrollView にキャストしています。ScollView は Horizo​​ntalScrollView の親クラスではないため、エラーがスローされます。変化する

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

HorizontalScrollView scrollview1 = (HorizontalScrollView)findViewById(R.id.scrollview1);
于 2012-07-17T21:00:07.180 に答える