我的代码中的错误是什么

时间:2012-10-19 07:15:38

标签: android android-layout

您好我有一个布局,其中有4个ButtonButton放在一个单独的LinearLayout中。 LinearLayout已为其分配了ID。现在在我的活动中保存了这个布局,我正在创建LinearLayout个变量并为它们分配id。

现在,当我尝试运行代码时,会显示以下错误。![在此处输入图像说明] [1]

10-19 12:36:43.899: E/AndroidRuntime(21774): FATAL EXCEPTION: main
10-19 12:36:43.899: E/AndroidRuntime(21774): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.code.accountmanager/com.code.accountmanager.AccountManagerActivity}: java.lang.NullPointerException

10-19 12:36:43.899: E/AndroidRuntime(21774): Caused by: java.lang.NullPointerException
10-19 12:36:43.899: E/AndroidRuntime(21774):    at android.app.Activity.findViewById(Activity.java:1825)
10-19 12:36:43.899: E/AndroidRuntime(21774):    at com.code.accountmanager.AccountManagerActivity.<init>(AccountManagerActivity.java:22)

显示错误的行也是:

LinearLayout l4 = (LinearLayout) findViewById(R.id.anim_recent_transaction);
LinearLayout l3 = (LinearLayout) findViewById(R.id.anim_view_account);
LinearLayout l2 = (LinearLayout) findViewById(R.id.anim_add_transaction);
LinearLayout l1 = (LinearLayout) findViewById(R.id.anim_add_account);

这是xml代码

    <LinearLayout
        android:id="@+id/buttonHolder"
        android:layout_width="120dp"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/anim_add_account"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center" >

            <ImageButton
                android:id="@+id/addAccount"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center"
                android:background="@drawable/addaccount_new"
                android:gravity="center" />
        </LinearLayout>

        <View
            android:layout_width="match_parent"
            android:layout_height="10dp" />

        <LinearLayout
            android:id="@+id/anim_add_transaction"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center" >

            <ImageButton
                android:id="@+id/addTransaction"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center"
                android:background="@drawable/addtransaction_new"
                android:gravity="center" />
        </LinearLayout>

        <View
            android:layout_width="match_parent"
            android:layout_height="10dp" />

        <LinearLayout
            android:id="@+id/anim_view_account"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center" >

            <ImageButton
                android:id="@+id/viewAccount"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center"
                android:background="@drawable/viewaccounts_new"
                android:gravity="center" />
        </LinearLayout>

        <View
            android:layout_width="match_parent"
            android:layout_height="10dp" />

        <LinearLayout
            android:id="@+id/anim_recent_transaction"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center" >

            <ImageButton
                android:id="@+id/recentTransaction"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center"
                android:background="@drawable/viewtransaction_new"
                android:gravity="center" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

请告诉我如何删除错误。

2 个答案:

答案 0 :(得分:2)

您应该在使用setContentView(R.layout.yourLayoutXML)之前添加findViewById。 我想这可能是你的问题

答案 1 :(得分:0)

如果您提供了布局xml文件的完整代码,那么最好确定您的错误。

在我的观点中,识别此类错误的最佳方法是调试您的代码。

这里是您可以了解最佳调试方式的链接。

http://developer.android.com/tools/debugging/ddms.html

祝你好运!!