私はTabLayout
を2つのフラグメントでアンドロイドに実装しました。一つの断片に私はListView
を加えました。私はListView
を埋めるためにサーバーからデータを取得しています。 MainActivity
クラスからListView
にアクセスしようとするまで、すべてうまくいきました。アンドロイドタブレイアウトのリストビュー
データをロードするためにTabLayout
を作成したMainActivityと同じリストビュー(フラグメント内にあります)にアクセスする必要があります。フラグメントは、タブレイアウトのタブ用に作成されます。
以下のコードを追加しました。
MainActivity
からどのようにアクセスできますかListView
? MainActivity.java親切
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detailed_report);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.addTab(tabLayout.newTab().setIcon(R.mipmap.ic_launcher));
tabLayout.addTab(tabLayout.newTab().setIcon(R.mipmap.ic_launcher));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setVisibility(View.INVISIBLE);
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
final PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
ReportListFragment.java
public class ReportListFragment extends Fragment{
private SimpleDateFormat mFormatter = new SimpleDateFormat("MMMM dd yyyy hh:mm aa");
Date newDate;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_item_list, container, false);
finder_sharedprefs = getActivity().getSharedPreferences(FINDERPREFERENCES, Context.MODE_PRIVATE);
listView=(ListView) view.findViewById(R.id.list);
reportLayout = (RelativeLayout) view.findViewById(R.id.new_report);
} catch (ParseException e) {
e.printStackTrace();
}
}
return view;
}
}
フラグメントを含むメインアクティビティにデータを送信しますか?正しい? –
@RaguSwaminathanいいえ。フラグメントレイアウトでlistviewを追加しました。しかし、今私はアクティビティクラスからアクセスする必要があります。 – anuradha
だから、このようなものが欲しい。あなたのアクティビティでいくつかのボタンをクリックすると、同じアクティビティでラップされているフラグメント内のリストビューに1行追加しますか?正しい> –