#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. Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. В том виде, в каком он сейчас написан, трудно точно сказать, о чем вы просите.