Void android.widget.TextView.setText(java.lang.CharSequence)'在null对象引用上

时间:2016-10-26 08:44:08

标签: java android android-studio android-preferences

一开始 - 我尝试了所有解决方案。

这是错误:

def get_id_list(person):
    return [person.id] if hasattr(person, 'id') else []

ActivityMainWallet.java:210-212行:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
                  at com.justfashion.ActivityMainWallet.onCreate(ActivityMainWallet.java:211)`

XML:



TextView navigationTotalCreditTextView = (TextView)mDrawerLay.findViewById(R.id.nav_drawer_total_credits);
    navigationTotalCreditTextView.setText("Total Credits: " + PreferenceConnector.readInteger(aiContext,
            PreferenceConnector.WALLETPOINTS,""));




我尝试了一切。它是PreferenceConnector的问题吗?这是PreferenceConnection.java中的<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffff" > <TextView android:id="@+id/nav_drawer_wallet_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:gravity="center" android:textColor="@color/md_white_1000" android:textSize="@dimen/twentyfive" /> <TextView android:id="@+id/nav_drawer_total_credits" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:textColor="@color/md_white_1000" android:textSize="@dimen/twentyfive" /> <TextView android:id="@+id/nav_drawer_username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:gravity="center" android:textColor="@color/md_white_1000" android:textSize="@dimen/twentyfive" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:id="@+id/content_frame_container" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffff" android:layout_below="@+id/toolbar_app_bar_layout"> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </RelativeLayout> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_below="@+id/toolbar_app_bar_layout" /> <android.support.design.widget.AppBarLayout android:id="@+id/toolbar_app_bar_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <include android:id="@+id/toolbar" layout="@layout/toolbar" /> <android.support.design.widget.TabLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/sliding_tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/toolbar" app:tabMode="scrollable" app:paddingStart="16dp" app:tabPaddingStart="16dp" app:tabPaddingEnd="16dp" app:tabMinWidth="96dp" app:tabGravity="center" /> </android.support.design.widget.AppBarLayout> </RelativeLayout> <android.support.design.widget.NavigationView xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/navigation_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="start" android:background="@color/md_white_1000" app:headerLayout="@layout/nav_drawer_header" app:menu="@menu/menu_drawer" app:itemTextAppearance="@style/TextAppearance.AppCompat.Menu" android:clipToPadding="false"> <!--<FrameLayout--> <!--android:layout_width="match_parent"--> <!--android:layout_height="wrap_content"--> <!--android:layout_gravity="bottom"--> <!--android:background="@color/md_white_1000"--> <!--android:elevation="4dp"--> <!--android:layout_marginBottom="-96dp">--> <!--<Button android:id="@+id/navigation_button_footer"--> <!--android:layout_width="match_parent"--> <!--android:layout_height="match_parent"--> <!--android:text=""--> <!--android:textSize="13sp"--> <!--android:textColor="@color/md_grey_800"--> <!--android:lines="3"--> <!--android:gravity="center"--> <!--style="@style/Widget.AppCompat.ActionButton"--> <!--android:paddingTop="20dp"--> <!--android:paddingLeft="20dp"--> <!--android:paddingRight="20dp"--> <!--android:paddingBottom="20dp"/>--> <!--</FrameLayout>--> </android.support.design.widget.NavigationView> <RelativeLayout android:id="@+id/lay_connection" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="@dimen/actmain_margintop" android:background="#3c3c3c" android:visibility="gone" > <TextView android:id="@+id/text_error" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:gravity="center" android:text="@string/error_no_internet" android:textColor="@color/md_white_1000" android:textSize="@dimen/twentyfive" /> <RelativeLayout android:id="@+id/lay_dialog" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" > <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/progressBar1" android:layout_centerHorizontal="true" android:text="@string/error_no_internet" android:textColor="@color/md_white_1000" android:textSize="@dimen/twentyfive" /> </RelativeLayout> </RelativeLayout> </android.support.v4.widget.DrawerLayout>

PreferenceConnector.WALLETPOINTS,""))

请帮帮我们!我尝试了所有解决方案,但没有人在PreferanceConnector中遇到此错误。

#EDIT

已解决,但现在我收到此错误:

public static final String  WALLETPOINTS            = "walletpoints";

3 个答案:

答案 0 :(得分:1)

试试这个;

TextView navigationTotalCreditTextView = (TextView)findViewById(R.id.nav_drawer_total_credits);
navigationTotalCreditTextView.setText("Total Credits: " + PreferenceConnector.readInteger(aiContext,
        PreferenceConnector.WALLETPOINTS,""));

答案 1 :(得分:1)

问题是您在错误的视图中搜索TextView。

你这样做了:

TextView navigationTotalCreditTextView = (TextView)mDrawerLay.findViewById(R.id.nav_drawer_total_credits);

但文字视图位于mDrawerLayout。见下文以及你的xml。

mDrawerLayout   = (DrawerLayout)findViewById(R.id.drawer_layout);
mDrawerLay      = (NavigationView)findViewById(R.id.navigation_view);

要解决问题,请执行以下操作:

TextView navigationTotalCreditTextView = (TextView)mDrawerLayout.findViewById(R.id.nav_drawer_total_credits);

答案 2 :(得分:0)

我也有这个问题。我花了很多时间。经过一天的工作和无助的搜索,我发现我有两个布局,分别来自两个不同的API级别,必须为两个API都更改TextView id,最后我解决了它,希望对其他人有所帮助。像我这样的大麻烦