【发布时间】:2015-12-30 13:05:17
【问题描述】:
这是我的情况:我想展示一些片段。就我而言,我有一个带有一些学生的 sqlite 数据库,这些字段是: _id、姓名、姓氏、性别、照片大小、字段 1、字段 2、字段 3、字段 4。例如,如果 field1 == 1 我必须显示片段 1,如果 field2 == 2 我必须显示片段 2,依此类推。我不知道我做错了什么。这是代码。
public class SectionsPagerAdapter extends FragmentPagerAdapter {
Bundle b = getIntent().getExtras();
int i = 2;
Cursor c;
Cursor c2;
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
String id = b.getString("id");
c2 = dbm.buscarAlumno(id);
if (c.moveToFirst()) {
switch (position) {
case 0:
if (c2.getString(5).equals("1")) {
return PlaceholderFragment.newInstance(position);
} else {
break;
}
case 1:
if (c2.getString(6).equals("1")) {
return PlaceholderFragment.newInstance(position);
} else {
break;
}
case 2:
if (c2.getString(7).equals("1")) {
return PlaceholderFragment.newInstance(position);
} else {
break;
}
case 3:
if (c2.getString(8).equals("1")) {
return PlaceholderFragment.newInstance(position);
} else {
break;
}
case 4:
return PlaceholderFragment.newInstance(position);
}
}
return null;
}
@Override
public int getCount() {
// Show 1 total pages.
return 5;
}
@Override
public CharSequence getPageTitle(int position) {
String id = b.getString("id");
c = dbm.buscarAlumno(id);
if (c.moveToFirst()) {
switch (position) {
case 0:
if (c.getString(5).equals("1")){
return "PISTA";
}
case 1:
if (c.getString(6).equals("1")){
return "ESTABLO";
}else{break;}
case 2:
if (c.getString(7).equals("1")){
return "EMOCIONES";
}else{break;}
case 3:
if (c.getString(8).equals("1")){
return "NECESIDADES";
}else{break;}
case 4:
return b.getString("alumno");
}
}return null;
}
}
dbm变量是在容器类中声明的,意思是DataBaseManager,buscarAlumno(id)是返回student的方法,发誓这个方法完美。这是logcat:
12-30 07:43:14.419 3104-3104/? W/EGL_emulation: eglSurfaceAttrib not implemented
12-30 07:43:14.429 3104-3104/? D/OpenGLRenderer: Enabling debug mode 0
12-30 07:43:17.849 1340-1354/? W/Binder: Caught a RuntimeException from the binder stub implementation.
java.lang.NullPointerException
at android.inputmethodservice.IInputMethodWrapper.setSessionEnabled(IInputMethodWrapper.java:280)
at com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129)
at android.os.Binder.execTransact(Binder.java:404)
at dalvik.system.NativeStart.run(Native Method)
12-30 07:43:17.849 1253-1353/? W/InputMethodManagerService: Got RemoteException sending setActive(false) notification to pid 3076 uid 10057
如果我不使用数据库也可以正常工作。
请帮忙!谢谢各位!
【问题讨论】:
-
粘贴
IInputMethodWrapper.javaline :280的来源 -
你有没有堆栈跟踪 - 那只是一个 android 崩溃,而不是特定于你的代码
标签: android sqlite android-fragments