フラグメント内にListViewがあり、リストをREST APIのデータで埋めたいとします。フラグメント内のListViewを正しく設定する
REST要求には1〜3秒かかります。 これをバックグラウンドで実行したいと考えています。
私はこの機能をデバッグする場合は、すべてが実行され
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
final View view = inflater.inflate(R.layout.fragment_watchlist, container, false);
view.postDelayed(new Runnable() {
@Override
public void run() {
//Execute Request in Thread
// adapter = ....
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
}
}, 1000);
return view;
でそれを試してみました。
しかし、リストは描画されません。
のみ:アプリのメインバーの検索バーをクリックすると、それから私はリストを見ることができます。
2日前すべて正常に機能しました。しかし、私は間違いがどこにあるのか知りません。私はあなたが(成功を確認してください)あなたは、アダプタの使用をリフレッシュしたい.IFウェブAPIレスポンス方式であなたのREST APIのoncreateview()フラグメントのとセットアダプタに呼び出す示唆
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
Fragment fragment = null;
String title = getString(R.string.app_name);
int id = item.getItemId();
if (id == R.id.nav_news) {
fragment = new NewsFragment();
} else if (id == R.id.nav_charts) {
fragment = new ChartFragment();
} else if (id == R.id.nav_favorites) {
fragment = new FavoriteFragment();
} else if (id == R.id.nav_profile) {
fragment = new ProfileFragment();
} else if (id == R.id.nav_settings) {
throw new NotImplementedException("Fragment not Implemented");
}
android.support.v4.app.FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
また、私はsasikumarに同意し、小さな方法にタスクを分割します。何かのように 1. getData() - このようなメソッドを作成し、AsyncTask、IntentService、またはスレッドを使用してバックグラウンドでデータを取得します。 2. displayData() - データを取得し、それを解析してjavaオブジェクトに変換したら、javaオブジェクトを使用してurリストビューを設定します。 –
しかし、フラグメントの 'View'オブジェクトを取得するには、onCreateView()関数でdisplayData()関数を呼び出す必要があります。 displayData()メソッドで 'getView()'しようとすると、ビューはnullになります – Phil795