2012-11-14 55 views
0

我有几个在XML中定义的对象,当我尝试获取句柄时返回null。我看到有几个职位说要清理这个项目,但这并没有帮助。当我浏览ListView对象时,所有的孩子都是空的?所以我对我做错了什么有点不知所措。以下是我认为相关的代码,但如果您需要查看其他内容,请通知我,我会将其发布。LstView findViewByID返回null

TIA JB

<Button 
    android:id="@+id/btn_NextLift" 
    android:layout_width="100dp" 
    android:layout_height="50dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="30dp" 
    android:layout_marginBottom="40dp" 
    android:text="@string/str_BtnNxtTxt" 
    android:onClick="btn_NextLiftClick" 
    android:longClickable="true" /> 

在活动:

public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.liftinterface); 
     ...//More code.... 
     ...//Still in the OnCreate.... 
     lstvw_LiftData = (ListView)findViewById(R.id.lstvw_LiftData); 
     ...//Image below of this object..... 
     //Get a handle on our button 
     Button btn_Nxt = (Button)this.findViewById(R.id.btn_NextLift); 
     btn_Nxt.setOnLongClickListener(new OnLongClickListener() 
     { 
     public boolean onLongClick(View v) 
     { 
     SaveAdvance(); 

     return true; 
      } 
     }); 

enter image description here

这仅仅是我的logcat错误:

11-13 22:04:57.798: E/AndroidRuntime(787): FATAL EXCEPTION: main 
11-13 22:04:57.798: E/AndroidRuntime(787): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.gpgvm.ironmike/org.gpgvm.ironmike.IcyArmActivity}: java.lang.NullPointerException 
11-13 22:04:57.798: E/AndroidRuntime(787): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
11-13 22:04:57.798: E/AndroidRuntime(787): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
11-13 22:04:57.798: E/AndroidRuntime(787): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
11-13 22:04:57.798: E/AndroidRuntime(787): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
11-13 22:04:57.798: E/AndroidRuntime(787): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-13 22:04:57.798: E/AndroidRuntime(787): at android.os.Looper.loop(Looper.java:123) 
11-13 22:04:57.798: E/AndroidRuntime(787): at android.app.ActivityThread.main(ActivityThread.java:3683) 
11-13 22:04:57.798: E/AndroidRuntime(787): at java.lang.reflect.Method.invokeNative(Native Method) 
11-13 22:04:57.798: E/AndroidRuntime(787): at java.lang.reflect.Method.invoke(Method.java:507) 
11-13 22:04:57.798: E/AndroidRuntime(787): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
11-13 22:04:57.798: E/AndroidRuntime(787): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
11-13 22:04:57.798: E/AndroidRuntime(787): at dalvik.system.NativeStart.main(Native Method) 
11-13 22:04:57.798: E/AndroidRuntime(787): Caused by: java.lang.NullPointerException 
11-13 22:04:57.798: E/AndroidRuntime(787): at org.gpgvm.ironmike.IcyArmActivity.onCreate(IcyArmActivity.java:83) 
11-13 22:04:57.798: E/AndroidRuntime(787): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
11-13 22:04:57.798: E/AndroidRuntime(787): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
11-13 22:04:57.798: E/AndroidRuntime(787): ... 11 more 
+0

发布您的LogCat,所以我们可以看到发生了什么。 – Sam

+0

仅限于详细或错误? – GPGVM

+0

只有错误请。但是Button的位置在'liftinterface.xml'或ListView中? – Sam

回答

3

当我浏览ListView对象时,所有的孩子都是空的?

视图不会画,直到完成onResume()。所以ListView将不会有onCreate()中的任何子项。

这个Button在哪里?如果它在ListView中,则需要编写一个自定义适配器来覆盖它的侦听器。


加成

它是在ListView布局。

您需要扩展您当前的适配器并覆盖getView()以给每行这样的唯一侦听器。请观看Android的Romain Guy讨论这exact topic在多个Google Talk事件的神话般的细节。

+0

我不知道如何给你更多的观点......但如果可以的话,我会。看着那个视频,我看到在这个论坛上的其他人已经引导我远离所有不好的事物,但我学到了更多更好的东西,我更了解我做的一些好事以及如何更好地让它变得更好。谢谢!!!! – GPGVM

+1

[There](http://www.google.com/events/io/2009/sessions.html)[是](http://www.google.com/events/io/2010/sessions.html)[更多](http://www.google.com/events/io/2011/sessions.html)... – Sam

+0

HierarchyViewer !!!那一定是我最喜欢的那部视频。非常类似于我来自.NET世界的窥探。感谢您的目录。我会一天看这些中的一个。 – GPGVM