나는 많이 조사했지만 내 사건에 대한 해결책을 찾지 못했습니다.
이것은 내 활동입니다.
public class ProfileActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
//region FindViews
toolbar = (Toolbar) findViewById(R.id.toolbar);
viewPager = (ViewPager) findViewById(R.id.viewpager);
tabLayout = (PagerSlidingTabStrip) findViewById(R.id.tabs);
//endregion
//region ViewPager
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setupViewPager(viewPager);
viewPager.setOffscreenPageLimit(5);
// tabLayout.setupWithViewPager(viewPager);
tabLayout.setViewPager(viewPager);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch (position) {
case 0:
changeColor(ContextCompat.getColor(getApplicationContext(), R.color.theme_red_primary));
break;
case 1:
changeColor(ContextCompat.getColor(getApplicationContext(), R.color.theme_yellow_primary));
break;
case 2:
changeColor(ContextCompat.getColor(getApplicationContext(), R.color.theme_green_primary));
break;
case 3:
changeColor(ContextCompat.getColor(getApplicationContext(), R.color.theme_blue_primary));
break;
case 4:
changeColor(ContextCompat.getColor(getApplicationContext(), R.color.theme_black_primary));
break;
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
//endregion
extrasForFragment = new Bundle();
extrasForFragment.putInt("name", 3);
//region Get Extras from Intent
extras = getIntent().getExtras();
if (extras != null) {
userID = extras.getInt(StaticVariables.INTENT_USERID, -1);
Log.e("ISER", "dd " + userID);
OverViewFragment.newInstance().setArguments(extrasForFragment);
}
//endregion
setTitle("");
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFrag(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFrag(OverViewFragment.newInstance(), getString(R.string.overview));
adapter.addFrag(new Fragment2(), getString(R.string.text));
adapter.addFrag(new Fragment3(), getString(R.string.text));
adapter.addFrag(new Fragment4(), getString(R.string.text));
adapter.addFrag(new Fragment5(), getString(R.string.text));
viewPager.setAdapter(adapter);
}
}
하지만 작동하지 않습니다 .. 이것은 내 조각입니다.
public class OverViewFragment extends Fragment {
public static OverViewFragment newInstance() {
return new OverViewFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Bundle b = getArguments();
if (b != null) {
Log.e("EXTRAS", "sind: " + b.toString() + " und: " + b.getInt("name", 0));
} else {
Log.e("FAIL", "...");
}
return inflater.inflate(R.layout.fragment_recyclerview, container, false);
}
}
하지만 작동하지 않았습니다. 나는 이것을 시도했다 : 안드로이드의 활동에서 조각으로 데이터를 보내고 이것 : 안드로이드에서 조각으로 활동 사이의 값 전달 하지만 아무것도 작동하고 싶지 않습니다 .. 해결책을 원합니다. 도움을 주셔서 감사합니다!
전화 할 수있는 유일한 장소는 setArguments
라인에있다 OverViewFragment.newInstance().setArguments(extrasForFragment);
당신에 사용되지 않습니다 ViewPager
. 다음 setupViewPager
과 같이 메서드에 인수를 설정하려고합니다 .
Fragment overviewFrag = OverViewFragment.newInstance();
overviewFrag.setArguments(<args_bundle>);
adapter.addFrag(overviewFrag, getString(R.string.overview));
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다