2012-11-14 94 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