Android 使用现有数据库
你好,, 我正在为Android构建一个应用程序,它使用现有的数据库。但是,应用程序无法在我的设备上正确运行 这是我的密码: Mainactivity.java:Android 使用现有数据库,android,Android,你好,, 我正在为Android构建一个应用程序,它使用现有的数据库。但是,应用程序无法在我的设备上正确运行 这是我的密码: Mainactivity.java: public class MainActivity extends TabActivity { Cursor model = null; TerrainAdapter adapter = null; TextView nom = null; TextView prenom = null; Te
public class MainActivity extends TabActivity {
Cursor model = null;
TerrainAdapter adapter = null;
TextView nom = null;
TextView prenom = null;
TextView fonction = null;
terrainHelper helper = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
helper = new terrainHelper(this);
nom = (TextView) findViewById(R.id.nom);
prenom = (TextView) findViewById(R.id.prenom);
fonction = (TextView) findViewById(R.id.fonction);
ListView list = (ListView) findViewById(R.id.terrains);
model = helper.getAll();
startManagingCursor(model);
adapter = new TerrainAdapter(model);
list.setAdapter(adapter);
TabHost.TabSpec spec = getTabHost().newTabSpec("tag1");
spec.setContent(R.id.terrains);
spec.setIndicator("List", getResources().getDrawable(R.drawable.list));
getTabHost().addTab(spec);
spec = getTabHost().newTabSpec("tag2");
spec.setContent(R.id.details);
spec.setIndicator("Details", getResources().getDrawable(R.drawable.terrain));
getTabHost().addTab(spec);
getTabHost().setCurrentTab(0);
list.setOnItemClickListener(onListClick);
}
@Override
public void onDestroy() {
super.onDestroy();
helper.close();
}
private AdapterView.OnItemClickListener onListClick = new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
model.moveToPosition(position);
nom.setText(helper.getNom(model));
prenom.setText(helper.getPrenom(model));
fonction.setText(helper.getFonction(model));
getTabHost().setCurrentTab(1);
}
};
class TerrainAdapter extends CursorAdapter {
TerrainAdapter(Cursor c) {
super(MainActivity.this, c);
}
@Override
public void bindView(View row, Context ctxt, Cursor c) {
TerrainHolder holder = (TerrainHolder) row.getTag();
holder.populateFrom(c, helper);
}
@Override
public View newView(Context ctxt, Cursor c, ViewGroup parent) {
LayoutInflater inflater = getLayoutInflater();
View row = inflater.inflate(R.layout.row, parent, false);
TerrainHolder holder = new TerrainHolder(row);
row.setTag(holder);
return (row);
}
}
static class TerrainHolder {
private TextView ville = null;
private TextView tache = null;
TerrainHolder(View row) {
ville = (TextView) row.findViewById(R.id.ville);
tache = (TextView) row.findViewById(R.id.tache);
}
void populateFrom(Cursor c, terrainHelper helper) {
ville.setText(helper.getNom(c));
tache.setText(helper.getFonction(c));
}
}
}
这是我的日志:
ERROR AndroidRuntime FATAL EXCEPTION: main
ERROR AndroidRuntime java.lang.RuntimeException: Unable to start activity ComponentInfo{com.abouchan.docs/com.abouchan.docs.MainActivity}: java.lang.NullPointerException
ERROR AndroidRuntime at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1664)
ERROR AndroidRuntime at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1680)
ERROR AndroidRuntime at android.app.ActivityThread.access$1500(ActivityThread.java:117)
ERROR AndroidRuntime at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
ERROR AndroidRuntime at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR AndroidRuntime at android.os.Looper.loop(Looper.java:130)
ERROR AndroidRuntime at android.app.ActivityThread.main(ActivityThread.java:3703)
ERROR AndroidRuntime at java.lang.reflect.Method.invokeNative(Native Method)
ERROR AndroidRuntime at java.lang.reflect.Method.invoke(Method.java:507)
ERROR AndroidRuntime at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
ERROR AndroidRuntime at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
ERROR AndroidRuntime at dalvik.system.NativeStart.main(Native Method)
ERROR AndroidRuntime Caused by: java.lang.NullPointerException
ERROR AndroidRuntime at com.abouchan.docs.terrainHelper.getAll(terrainHelper.java:166)
ERROR AndroidRuntime at com.abouchan.docs.MainActivity.onCreate(MainActivity.java:54)
ERROR AndroidRuntime at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
ERROR AndroidRuntime at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1628)
ERROR AndroidRuntime ... 11 more
这是你第一次运行它吗 您的活动可能没有在Manifest.xml中声明,这似乎是一个简单的事实
<activity android:name=".MainActivity"></activity>
<activity android:name=".TabActivity"></activity>
至少你需要包括这样的东西
希望有帮助
<activity android:name=".MainActivity"></activity>
<activity android:name=".TabActivity"></activity>