【问题标题】:Androidx Null Pointer Exception Error, Invoke methodAndroidx空指针异常错误,调用方法
【发布时间】:2018-07-30 21:25:42
【问题描述】:

我收到此错误。这是我的logcat。我不知道到底出了什么问题。我收到撤销错误,或者我们可以说NullExceptionError。我尝试了一切,但没有锻炼。

 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RelativeLayout.setVisibility(int)' on a null object reference
    at com.nazeefawann.truemate.Profile.AccountSettingActivity.setViewPager(AccountSettingActivity.java:52)
    at com.nazeefawann.truemate.Profile.AccountSettingActivity$2.onItemClick(AccountSettingActivity.java:71)
    at android.widget.AdapterView.performItemClick(AdapterView.java:303)
    at android.widget.AbsListView.performItemClick(AbsListView.java:1151)
    at android.widget.AbsListView$PerformClick.run(AbsListView.java:3065)
    at android.widget.AbsListView$3.run(AbsListView.java:3878)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5538)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller
    .run(ZygoteInit.java:960)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

我正在制作一个应用程序,我想在设置活动中制作片段而不是单独制作,以便我可以轻松添加更多功能。我已经创建了 2 片段,但是当我单击它时返回到上一个活动。不知道为什么

public void setViewPager(int fragmentNumbers){
    mRelativeLayout.setVisibility(View.GONE);
    Log.d(TAG,"setViewPager: navigating to fragment #:" + fragmentNumbers);
    viewPager.setAdapter(pagerAdapter);
    viewPager.setCurrentItem(fragmentNumbers); 

这是我的 AccountSettingActivity

 import androidx.annotation.Nullable;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.viewpager.widget.ViewPager;

public class AccountSettingActivity extends AppCompatActivity {
private Context mContext;
private SectionStatePagerAdapter pagerAdapter;
private ViewPager viewPager;
private RelativeLayout mRelativeLayout;
private String TAG;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    viewPager = (ViewPager) findViewById(R.id.container);
    mRelativeLayout = (RelativeLayout) findViewById(R.id.relaytiveLayout11);
    mContext = AccountSettingActivity.this;
    setContentView(R.layout.activity_accountsettings);
    setupSettingList();
    setupFragment();
    ImageView backArrow = (ImageView) findViewById(R.id.backArrow);
    backArrow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            finish();
        }
    });
}
private void setupFragment(){
    pagerAdapter = new SectionStatePagerAdapter(getSupportFragmentManager());
    pagerAdapter.addFragment(new EditProfileFragment(), getString(R.string.edit_profile_fragment)); //fragment 0
    pagerAdapter.addFragment(new SignOutFragment(), getString(R.string.sign_out_fragment)); //fragment 1
}
public void setViewPager(int fragmentNumbers){
    mRelativeLayout.setVisibility(View.GONE);
    Log.d(TAG,"setViewPager: navigating to fragment #:" + fragmentNumbers);
    viewPager.setAdapter(pagerAdapter);
    viewPager.setCurrentItem(fragmentNumbers);

}
private void setupSettingList(){
    ListView listView = (ListView) findViewById(R.id.lvAccountSettings);

    ArrayList<String> options = new ArrayList<>();
    options.add(getString(R.string.edit_profile_fragment)); //fragment 0
    options.add(getString(R.string.sign_out_fragment)); //fragement 1

    ArrayAdapter adapter = new ArrayAdapter(mContext, android.R.layout.simple_list_item_1, options);
    listView.setAdapter(adapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            setViewPager(position);
        }
    });

}

}

这是我的 xml 文件

<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<include layout="@layout/layout_center_viewpager"></include>
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/relaytiveLayout11">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/relLayout2">
        <include layout="@layout/snippet_top_settingtoolbar"/>

    </RelativeLayout>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/relLayout3"
        android:layout_below="@id/relLayout2"
        android:layout_marginBottom="50dp">

        <include layout="@layout/layout_center_accountsettiings"/>

    </RelativeLayout>


</RelativeLayout>

我正在使用 android x 库,我可能因为这个库而出错

我无法在这段代码中找到错误我做了很多实验但没有任何结果我相信你们中的一些人会帮助我 提前致谢

【问题讨论】:

    标签: android listview android-viewpager adapter android-relativelayout


    【解决方案1】:

    在调用setContentView 之前不要调用任何findViewByIdmRelativeLayout = (RelativeLayout) findViewById(R.id.relaytiveLayout11);。确保在访问任何视图之前调用它。

    像这样重新定位您的代码

    
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mContext = AccountSettingActivity.this;
            setContentView(R.layout.activity_accountsettings);
            viewPager = (ViewPager) findViewById(R.id.container);
            mRelativeLayout = (RelativeLayout) findViewById(R.id.relaytiveLayout11);
            setupSettingList();
            setupFragment();
            ImageView backArrow = (ImageView) findViewById(R.id.backArrow);
            backArrow.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    finish();
                }
            });
        }
    
    

    【讨论】:

      猜你喜欢
      • 2013-09-17
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-30
      • 1970-01-01
      • 2013-03-15
      • 2013-03-22
      相关资源
      最近更新 更多