Android:如何定义游标、DBHandler。。。在主活动区,从另一个呼叫它?

Android:如何定义游标、DBHandler。。。在主活动区,从另一个呼叫它?,android,tabactivity,Android,Tabactivity,我有一个应用程序,它没有smth。。。在主课开始时,我会做以下几点: myCommunicator = new Communicator(); // LOAD DB dbAdapter = new ToDoDBAdapter(this); dbAdapter.open(); // CHECK CHANNEL CHANGES try { dbHandler = dbAdapter.getAllChannelNames(); start

我有一个应用程序,它没有smth。。。在主课开始时,我会做以下几点:

myCommunicator = new Communicator();
    // LOAD DB
    dbAdapter = new ToDoDBAdapter(this);
    dbAdapter.open();
    // CHECK CHANNEL CHANGES
    try {
      dbHandler = dbAdapter.getAllChannelNames();
      startManagingCursor(dbHandler);
      String md5Channels = "";
      while (dbHandler.moveToNext()) 
      {
          String xy = dbHandler.getString(0);
          md5Channels += xy;
      }
      // 2. Make MD5 string
      md5Channels = myCommunicator.md5(md5Channels); 

      // 3. Compare MD5
      ChannelsArray = myCommunicator.getChannels(md5Channels);
      // 4. Update if needed
      if(ChannelsArray.length() > 0)
      {
          dbAdapter.populateDB(ChannelsArray);
      }

      dbHandler = dbAdapter. getAllToDoItemsCursor();

    } 
    catch (JSONException e) {
            Log.d(" - PopulateChannels - ", "Napaka: " + e.toString());
        }
定义了myCommunicator、dbAdapter、dbHandler、ChannelsArray

比我

public Cursor getChannelCursor()
{
    return dbHandler;
}
public ToDoDBAdapter getDBAdapter()
{
    return dbAdapter;
}
public Communicator getCommunicator()
{
    return myCommunicator;
}
public JSONArray getChannelsArray()
{
    return ChannelsArray;
}
这个类有tabhost*将称之为Activity1。。。当我从另一个类调用*时,它将调用Activity2…(在tabost中)结果为null

所以当我做
Activity1.getChannelsArray()时(或任何其他函数)从Activity2它始终为空。。。我不知道怎么解决它


嗨,很抱歉缺少信息

我有主要的活动。。。在开始时调用(活动1)。。。我在那里填充DB(如果有任何更改)并创建DB游标。。。此活动保留TabHost

最简单的解释方法是编写一些代码:

以下是活动1(主要活动)

现在还有一个:

package com.Avtivity1;
public class activity1 extends TabActivity implements OnTabChangeListener 
{
  private ToDoDBAdapter dbAdapter;
  @Override
  public void onCreate(Bundle icicle) { 
  ...
     Activity1 Activity1 = new Activity1();
     Activity1.getDBAdapter();
  }
  public ToDoDBAdapter getDBAdapter()
  {
    return dbAdapter;
  }
}

这部分
Activity1.getDBAdapter()始终返回空值

一般来说,不要在需要在应用程序的其他部分使用的
活动中保存数据。不能依赖活动的生命周期,因为系统可能会基于内存不足等需求回收其资源


相反,将您的值存储在一个单例非活动类中。

我已经读了好几遍了,真的不知道您想做什么;缺少的代码太多,无法给出合理的答案。已更新。。。对不起,缺少信息。。。
package com.Avtivity1;
public class activity1 extends TabActivity implements OnTabChangeListener 
{
  private ToDoDBAdapter dbAdapter;
  @Override
  public void onCreate(Bundle icicle) { 
  ...
     Activity1 Activity1 = new Activity1();
     Activity1.getDBAdapter();
  }
  public ToDoDBAdapter getDBAdapter()
  {
    return dbAdapter;
  }
}