Попытка вызвать виртуальный метод ‘void android.widget.Просмотр списка (progressbar)

#android-layout

Вопрос:

Я пытаюсь улучшить свое учебное приложение, я пытаюсь вставить панель прогресса с предупреждением об ошибке подключения.

проект https://github.com/armanfm/AndroidDeveloper

как мне сделать, чтобы мой listviw не был нулевым?

  • setListAdapter (mAdapter); работает, но не так, как ожидалось, он не просто берет один атрибут из класса.
  • есть ли какой-нибудь способ, чтобы setListAdapter отправлял только 1 атрибут класса?

    [ @Переопределить общедоступный просмотр onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

                   View layout = inflater.inflate(R.layout.fragment_main, null);
                  mTextMensagem = (TextView) layout.findViewById(android.R.id.empty);
                  mProgressBar = (ProgressBar) layout.findViewById(R.id.progressBar);
                  mListView = (ListView) layout.findViewById(R.id.list);
                 mListView.setEmptyView(mTextMensagem);
    
    
    
              return layout;
          }
    
          @Override
          public void onActivityCreated(Bundle savedInstanceState) {
              super.onActivityCreated(savedInstanceState);
    
    
              if (mDireito == null) {
    
                  mDireito = new ArrayList<>();
    
              }
    
              mAdapter = new AdapterList(getActivity(), mDireito);
              //setListAdapter(mAdapter);
    
    
             mListView.setAdapter(mAdapter);
    
                  if (mTask == null) {
                      mTask = new DireitoTask();
                      mTask.execute();
                  } else if (mTask.getStatus() == AsyncTask.Status.FINISHED){
                      mTextMensagem.setText("Sem conexão");
                  }
          else if (mTask.getStatus() == AsyncTask.Status.RUNNING){
              exibirProgress(true);
          }
     

    fragment_main com relativelayout
    }

       <ListView
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:id="@android:id/list" />
    
      <ProgressBar
          style="?android:attr/progressBarStyleLarge"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:id="@ id/progressBar"
          android:layout_centerInParent="true"
          android:visibility="gone"/>
    
      <TextView
          android:id="@android:id/empty"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_centerHorizontal="true"
          android:layout_below="@android:id/list"/>
     

activity_main

 <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <fragment android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:name="com.example.direitopenal.DireitoListFragment"
        android:id="@ id/fragmentLista"/>
    <FrameLayout
        android:id="@ id/detalhe"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="2"/>
</LinearLayout>
 

основное действие minha

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mTabLayout = findViewById(R.id.tab_layout);
        mPager = findViewById(R.id.viewPager);

       // FragmentManager fm = getSupportFragmentManager();
        mPager = (ViewPager)findViewById(R.id.viewPager);
        mPager.setAdapter(new FragmentAdapter(getSupportFragmentManager()));
        TabLayout tabLayout = (TabLayout)findViewById(R.id.tabs);

        tabLayout.setupWithViewPager(mPager);
        //mPager.getAdapter().notifyDataSetChanged();

  }

    @Override
    public void clicouDireito(Direito direito) {
        Intent it = new Intent(this, DireitoDetalheActivity.class);
        it.putExtra(DireitoDetalheActivity.EXTRA_DIREITO, direito);
        startActivity(it);


    }


}
 

логкэт

  Process: com.example.direitopenal, PID: 8587
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setEmptyView(android.view.View)' on a null object reference
        at com.example.direitopenal.DireitoListFragment.onCreateView(DireitoListFragment.java:48)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:2439)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460)
        at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
        at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:802)
        at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
 

Комментарии:

1. Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. В том виде, в каком он сейчас написан, трудно точно сказать, о чем вы просите.