我尝试遵循此帖子Synchronise ScrollView scroll positions - android中的建议,但遇到了问题。
背景 - 我想要一个表格布局,既有水平滚动,又有垂直滚动,但我希望第一行和第一列始终存在 - 就像在excel中冻结窗格一样。不幸的是,使用Android java编程似乎几乎不可能...这让我头疼不已。如果我可以同步这两个HorizontalScrollView,那么我将拥有我想要的表格工作方式。
我按照上面发布的链接的建议进行操作,我遇到的问题是这样的。 当我实现时,应用程序会强制关闭。
我们应该在布局中指定这个新的ObservableScrollView类,而不是现有的ScrollView标签。
以下是错误代码。
背景 - 我想要一个表格布局,既有水平滚动,又有垂直滚动,但我希望第一行和第一列始终存在 - 就像在excel中冻结窗格一样。不幸的是,使用Android java编程似乎几乎不可能...这让我头疼不已。如果我可以同步这两个HorizontalScrollView,那么我将拥有我想要的表格工作方式。
我按照上面发布的链接的建议进行操作,我遇到的问题是这样的。 当我实现时,应用程序会强制关闭。
我认为问题可能在于我声明ObservableScrollViews的方式。我没有使用XML,所有对象都是通过编程创建的。我尝试使用scrollView1.setScrollViewListener(this);
但这也导致了强制关闭。(我可以只创建一个常规的ScrollView,分配一个ID,然后使用private ObservableScrollView oScrollViewOne = new ObservableScrollView (this);
我想知道如何理解下面的注释,并且如果我不使用XML布局,该如何使用它们。scrollView1 = (ObservableScrollView) findViewById(ID); 其中ID是我给ScrollView分配的整数编号。
我们应该在布局中指定这个新的ObservableScrollView类,而不是现有的ScrollView标签。
是否有其他建议来实现同步两个HorizontalScrollView,使用明确的代码 - 而不仅仅是建议使用OnTouchMotionEvent或其他没有给出代码的想法,正如我之前所看到的那样。com.test.ObservableScrollView android:id="@+id/scrollview1" ...
以下是错误代码。
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): FATAL EXCEPTION: main
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.glen.apps.TeacherAidePro/com.glen.apps.TeacherAidePro.TeacherAidePro}: java.lang.NullPointerException
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2709)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.app.ActivityThread.access$2300(ActivityThread.java:135)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2136)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.os.Handler.dispatchMessage(Handler.java:99)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.os.Looper.loop(Looper.java:144)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.app.ActivityThread.main(ActivityThread.java:4937)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at java.lang.reflect.Method.invokeNative(Native Method)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at java.lang.reflect.Method.invoke(Method.java:521)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at dalvik.system.NativeStart.main(Native Method)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): Caused by: java.lang.NullPointerException
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.view.View.<init>(View.java:1810)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.view.View.<init>(View.java:1856)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.view.ViewGroup.<init>(ViewGroup.java:299)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.widget.FrameLayout.<init>(FrameLayout.java:83)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.widget.ScrollView.<init>(ScrollView.java:137)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.widget.ScrollView.<init>(ScrollView.java:133)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.widget.ScrollView.<init>(ScrollView.java:129)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at com.glen.apps.TeacherAidePro.ObservableScrollView.<init>(ObservableScrollView.java:12)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at com.glen.apps.TeacherAidePro.TeacherAidePro.<init>(TeacherAidePro.java:119)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at java.lang.Class.newInstanceImpl(Native Method)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at java.lang.Class.newInstance(Class.java:1429)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.app.Instrumentation.newActivity(Instrumentation.java:1036)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2701)
10-23 23:33:08.631: ERROR/AndroidRuntime(18187): ... 11 more
这里是第12行
1. package com.glen.apps.TeacherAidePro;
2.
3. import android.content.Context;
4. import android.util.AttributeSet;
5. import android.widget.ScrollView;
6.
7. public class ObservableScrollView extends ScrollView {
8.
9. private IScrollListener listener = null;
10.
11. public ObservableScrollView(Context context) {
12. super(context);
}