FragmentPagerAdapter
에 PreferenceFragment
을 추가하려고합니다.FragmentPagerAdapter에 PreferenceFragment 추가
내 수업은 FragmentActivity
으로 확장되었으므로 아래에 표시된대로 FragmentTransaction
을 시도한 것뿐 아니라 컨테이너에 추가하는 데 아무런 효과가없는 것으로 보입니다. 아니요 오류가 발생합니다. 실제로는 아무 일도 발생하지 않습니다.
주요 활동 :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
}
activity_main.xml :
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
</android.support.v4.view.ViewPager>
내 옵션 메뉴 선택 :
android.app.FragmentManager fm;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_settings:
JJSettings settings = new JJSettings();
fm = getFragmentManager();
FragmentTransaction fragTrans = fm.beginTransaction();
// I also tried `replace()` here as well. Same 'nothing happens' result.
fragTrans.add(settings, "settings");
fragTrans.commit();
return true;
case R.id.menu_help:
menuHelp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
내 설정Fragment
:이
public class JJSettings extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
내 취향은, 차라리 PreferenceActivity
을 확장하거나 PreferenceFragment
를 호출하는 다른 활동에 사용자를하지 거라고 의미 Fragments
가능하면 고수 할 경우 모든 것 가능한. 나는 내 연구에서 뭔가를 놓쳤 으면 좋겠다.
편집
public class SectionsPagerAdapter extends FragmentPagerAdapter {
private int _count = 2;
public SectionsPagerAdapter(FragmentManager fm) { super(fm); }
@Override
public Object instantiateItem(ViewGroup container, int position) {
return super.instantiateItem(container, position);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new JJMainFragment();
case 1:
return new JJPendingFragment();
default:
return null;
}
}
public void setCount(int count) { this._count = count; }
@Override
public int getCount() { return this._count; }
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return getString(R.string.c_list).toUpperCase(Locale.ENGLISH);
case 1:
return getString(R.string.c_pending).toUpperCase(Locale.ENGLISH);
}
return null;
}
}
당신이 당신의 SectionsPagerAdapter 코드를 게시 할 수 있습니까? – Karakuri
@ Karakuri 덧붙여, 왜 당신이 그것을보고 싶었는지 100 % 확신 할 수는 없지만, 나는'ViewPager'에 설정/선호도를 추가하고 싶지 않습니다. – jnthnjns