android的怎么在一个activity里查询另外一个activity的数据库?

//第一个
case R.id.selectId:

        mmanager=(NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);
        Intent intent=new Intent(this, AllSchool.class);
        PendingIntent pending=PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
        Notification notification=new Notification.Builder(this)
                .setAutoCancel(true)
                .setTicker("下拉查看")
                .setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle("学校")
                .setContentText("详细信息")
                .setContentIntent(pending)
                .build();
        mmanager.notify(1,notification);
        break;

//第二个

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.manager);
                    
    listViewId=(ListView)findViewById(R.id.listViewId);
    adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,contactList);
    listViewId.setAdapter(adapter);
    readManager();
    
}

public void readManager()
{
    SQLiteDatabase db2=msh.getWritableDatabase();
    Cursor cursor=db2.query("school", null, null, null, null, null, null);
    
    if(cursor.moveToFirst())
    {
        int id=cursor.getInt(cursor.getColumnIndex("id"));
        int phone=cursor.getInt(cursor.getColumnIndex("phone"));
        String name=cursor.getString(cursor.getColumnIndex("name"));
        String address=cursor.getString(cursor.getColumnIndex("address"));
        //Log.d("MainActivity","id is"+id);
        //Log.d("MainActivity","phone is"+phone);
        //Log.d("MainActivity","name is"+name);
        //Log.d("MainActivity","address is"+address);
        
        contactList.add(id+"\n"+phone+"\n"+name+"\n"+address);
        
        
    }

错误提示 空指针异常

阅读 4.4k
5 个回答

首先确保你的数据库中有'school'这个表,然后确定这个表有'id''phone''name''address'的字段,接着确定表中有数据,代码中可以在获取到cursor后判断是否为null,打个Log看一下。

新手上路,请多包涵

再描述一下你的问题,数据库还分是哪个activity的吗?

2个Activity之间的通讯吧 是否是这个意思?如果是的画 建议使用EventBus 或者Broadcastreceiver来解决消息传递和数据处理 希望能帮到你

你需要创建一个单例的DBManager用来管理你的db资源,db的数据不会随你窗口的创建销毁而被释放。

你的问题描述很差劲,首先数据库是对于Appliction来说,如果说是跨应用访问数据库的话,就要用到AIDL,你可以参照contentProvider(7.0的文件称之为FileProvider),这个已经属于跨进程通信的范畴了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题