2016-06-02 8 views
0

最新のアンドロイドアプリでは、インターネットからデータを読み込むためにローダーを使用しています。 私はRecyclerViewを持っています。アイテムをクリックすると、新しいアクティビティが開始されます。しかし、私が戻るたびに、Loaderはデータをリロードし、RecyclerViewを更新し、リストの先頭にジャンプします。Androidの停止ローダーが戻った後に再読み込みされない

どうすればその動作を停止できますか?

MainActivity

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if(savedInstanceState == null) { 
     setContentView(R.layout.activity_main); 

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     pagerAdapter = new PagerAdapter(getApplicationContext(), getSupportFragmentManager()); 
     viewPager = (ViewPager) findViewById(R.id.pager); 
     viewPager.setAdapter(pagerAdapter); 
     viewPager.setOffscreenPageLimit(3); 

     TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 
     tabLayout.setupWithViewPager(viewPager); 
    } 
} 

ListFragment

@Override 
public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    getLoaderManager().initLoader(0, null, this); 
} 

@Override 
public Loader onCreateLoader(int id, Bundle args) { 
    return new DataLoader(getActivity()); 
} 

@Override 
public void onLoadFinished(Loader<Object> loader, Object data) { 
    adapter.data = data; 
    adapter.notifyDataSetChanged(); 
} 

コード

Intent intent = new Intent(view.getContext(), DetailActivity.class); 
intent.putExtra(DetailFragment.ARG_DATA, data); 
view.getContext().startActivity(intent); 

戻るナビゲーション

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == android.R.id.home) { 
     // This ID represents the Home or Up button. In the case of this 
     // activity, the Up button is shown. Use NavUtils to allow users 
     // to navigate up one level in the application structure. For 
     // more details, see the Navigation pattern on Android Design: 
     // 
     // http://developer.android.com/design/patterns/navigation.html#up-vs-back 
     // 
     NavUtils.navigateUpTo(this, new Intent(this, MainActivity.class)); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
新しい活動を開始します

EDIT:RecyclerViewコード

public class ListItemRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { 

    public List<Data> data; 

    public ListItemRecyclerViewAdapter(List<Data> data) { 
     data = data; 
    } 

    @Override 
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     return new ListItemViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_list_item, parent, false)); 
    } 

    @Override 
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 
     ((ListItemViewHolder) holder).setData(data.get(position)); 
    } 

    @Override 
    public int getItemCount() { 
     return data.size(); 
    } 
} 
+0

がrecycrleviewコード –

+0

を共有し、私はコードを追加しました – iONsky

答えて

関連する問題