異なるデータを読み込むタブレイアウトがあります。すべてのフラグメントに対して同じUIが1つしかありません。しかし、それぞれのデータに対して私は異なる断片クラスファイルを持っています。1つのフラグメントクラスを再利用して、異なるデータを同じアクティビティに読み込む方法
同じUIに対してさらに5つのフラグメントクラスを作成する必要はありません。私は、同じ1つの断片クラスコードを再利用し、異なるデータをその中に表示したい。
私は別のものを渡したいString id = String.valueOf(1);それぞれのフラグメントに異なるデータを取得します。
この
は私のコードですつのフラグメントのクラス
public class OneFragment extends Fragment implements View.OnClickListener {
private static final String TAG = "OneFragment";
DisplayData displayData = new DisplayData();
DetailsData reqDetailnew;
OneFragment context;
TextView title, subject;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tab, container, false);
context = OneFragment.this;
//text
title = (TextView) view.findViewById(R.id.title);
subject = (TextView) view.findViewById(R.id.subject);
return view;
}
}
}
メインActivityクラス
public class MainActivity extends AppCompatActivity {
private PageAdapter PageAdapter;
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.subject_information);
Log.d(TAG, "onCreate: Starting.");
PageAdapter = new PageAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.container);
setupViewPager(mViewPager);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(mViewPager);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// app icon in action bar clicked; goto parent activity.
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void setupViewPager(ViewPager viewPager) {
PageAdapter adapter = new PageAdapter(getSupportFragmentManager());
adapter.addFragment(new Tab1Fragment(), "1");
adapter.addFragment(new Tab2Fragment(), "2");
adapter.addFragment(new Tab3Fragment(), "3");
adapter.addFragment(new Tab4Fragment(), "4");
adapter.addFragment(new Tab5Fragment(), "5");
viewPager.setAdapter(adapter);
}
}
ページャアダプタ
public class PageAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
public PageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
}
MainAcitivityのXML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="scrollable"
app:tabGravity="fill"
app:tabTextColor="#ffffff"
/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</LinearLayout>
タブXML
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title:"
/>
<TextView
android:id="@+id/subject"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Subject:"
/>
</LinearLayout>
他の条件を使用してonCreateViewに文字列値を渡す方法を教えていただけますか?データを取得してください! – feltonjk
PageAdapterにOneFragmentクラスを宣言する方法を教えてください。このエラーは来ています! https://i.stack.imgur.com/4aIfH.jpg – feltonjk
適切なコードと説明で新しい質問として追加してください。あなたが望むならここにリンクを投稿してください。 – humazed