저는 Fragments를 처음 사용하고 있으며 조각과 뷰 페이지를 사용하는 몇 가지 탭이있는 활동이 있습니다.Android Fragment & ViewPager : 오리엔테이션 변경시 오류가 발생합니다.
내 문제는 오리엔테이션을 바꾸거나 홈 화면으로 이동할 때마다 응용 프로그램이 충돌한다는 것입니다. 여기에 내 조각 중 하나입니다 ...
public class MainActivity extends SherlockFragmentActivity {
ActionBar actionBar;
ViewPager mPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mPager = (ViewPager) findViewById(R.id.pager);
FragmentManager fm = getSupportFragmentManager();
ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener(){
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
actionBar.setSelectedNavigationItem(position);
}
};
mPager.setOnPageChangeListener(pageChangeListener);
MyFragmentPagerAdapter fragmentPagerAdapter = new MyFragmentPagerAdapter(fm);
mPager.setAdapter(fragmentPagerAdapter);
actionBar.setDisplayShowTitleEnabled(true);
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
mPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
};
Tab firstTab = mActionBar.newTab().setText("First Tab").setTabListener(tabListener);
actionBar.addTab(firstTab);
Tab secondTab = mActionBar.newTab()
.setText("Second Tab")
.setTabListener(tabListener);
actionBar.addTab(secondTab);
}
}
:
public class FirstFragment extends SherlockFragment implements ActionBar.TabListener{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmentone, container, false);
// Stuff...
return view;
}
@Override
public void onStart() {
super.onStart();
}
}
... 그리고 내 조각 어댑터 :
여기 내 활동이다
public class MyFragmentPagerAdapter extends FragmentPagerAdapter{
final int PAGE_COUNT = 2;
public MyFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int arg0) {
Bundle data = new Bundle();
switch(arg0){
case 0:
FirstFragment firstFragment = new FirstFragment();
data.putInt("current_page", arg0+1);
firstFragment.setArguments(data);
return firstFragment;
case 1:
SecondFragment secondFragment = new SecondFragment();
data.putInt("current_page", arg0+1);
secondFragment.setArguments(data);
return secondFragment;
}
return null;
}
@Override
public int getCount() {
return PAGE_COUNT;
}
}
. .. 내 모든 활동 XML 파일입니다.
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>
제발 도와주세요,이 두통이 나를 일으켰습니다. 도움이된다면 ActionBarSherlock 라이브러리를 사용하고 있습니다.
편집 : 저는 여기에 같은 (이
11-27 22:44:14.590: D/dalvikvm(803): newInstance failed: no <init>()
11-27 22:44:14.599: D/AndroidRuntime(803): Shutting down VM
11-27 22:44:14.599: W/dalvikvm(803): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
11-27 22:44:14.669: W/Trace(700): Unexpected value from nativeGetEnabledTags: 0
11-27 22:44:14.760: E/AndroidRuntime(803): FATAL EXCEPTION: main
11-27 22:44:14.760: E/AndroidRuntime(803): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pk.chemhelp/com.pk.chemhelp.Debug}: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.pk.chemhelp.Debug$FirstFragment: make sure class name exists, is public, and has an empty constructor that is public
11-27 22:44:14.760: E/AndroidRuntime(803): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3692)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.app.ActivityThread.access$700(ActivityThread.java:141)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1240)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.os.Handler.dispatchMessage(Handler.java:99)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.os.Looper.loop(Looper.java:137)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.app.ActivityThread.main(ActivityThread.java:5039)
11-27 22:44:14.760: E/AndroidRuntime(803): at java.lang.reflect.Method.invokeNative(Native Method)
11-27 22:44:14.760: E/AndroidRuntime(803): at java.lang.reflect.Method.invoke(Method.java:511)
11-27 22:44:14.760: E/AndroidRuntime(803): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-27 22:44:14.760: E/AndroidRuntime(803): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-27 22:44:14.760: E/AndroidRuntime(803): at dalvik.system.NativeStart.main(Native Method)
11-27 22:44:14.760: E/AndroidRuntime(803): Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.pk.chemhelp.Debug$FirstFragment: make sure class name exists, is public, and has an empty constructor that is public
11-27 22:44:14.760: E/AndroidRuntime(803): at android.support.v4.app.Fragment.instantiate(Fragment.java:395)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.support.v4.app.FragmentState.instantiate(Fragment.java:96)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.support.v4.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:1726)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:198)
11-27 22:44:14.760: E/AndroidRuntime(803): at com.pk.chemhelp.Debug.onCreate(Debug.java:63)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.app.Activity.performCreate(Activity.java:5104)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
11-27 22:44:14.760: E/AndroidRuntime(803): ... 12 more
11-27 22:44:14.760: E/AndroidRuntime(803): Caused by: java.lang.InstantiationException: can't instantiate class com.pk.chemhelp.Debug$FirstFragment; no empty constructor
11-27 22:44:14.760: E/AndroidRuntime(803): at java.lang.Class.newInstanceImpl(Native Method)
11-27 22:44:14.760: E/AndroidRuntime(803): at java.lang.Class.newInstance(Class.java:1319)
11-27 22:44:14.760: E/AndroidRuntime(803): at android.support.v4.app.Fragment.instantiate(Fragment.java:384)
11-27 22:44:14.760: E/AndroidRuntime(803): ... 19 more
11-27 22:44:14.880: W/ActivityManager(290): Force finishing activity com.pk.chemhelp/.Debug
11-27 22:44:14.950: W/Trace(519): Unexpected value from nativeGetEnabledTags: 0
LogCat 오류도 게시하십시오. – Sam
오류 스택 추적을 게시 할 수 있습니까? – antew
내일 오후에 로그를 게시합니다. 나는 이것을 게시하자마자 컴퓨터에서 내렸다. * 레이지 종료 * – Pkmmte