Android:如何定义游标、DBHandler。。。在主活动区,从另一个呼叫它?
我有一个应用程序,它没有smth。。。在主课开始时,我会做以下几点: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
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;
}
}