我有一个应用程序,它确实......在主课开始时我做了以下事情:
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 ...(在tapost内部)结果为null ...
因此,当我Activity1.getChannelsArray();
从 Activity2 执行(或任何其他功能)时,它始终为空......不知道如何解决它......
您好,抱歉信息不足...
我有主要活动...在开始时调用(Activity1)...我在那里填充数据库(如果有任何更改)并创建数据库光标...此活动包含 TabHost...
最简单的解释方法是编写一些代码:
这是Activity1(主要活动)
package com.Avtivity1;
public class activity1 extends Activity
{
public void onCreate(Bundle savedInstanceState) {
...
dbAdapter = new ToDoDBAdapter();
}
public ToDoDBAdapter getDBAdapter()
{
return dbAdapter;
}
}
现在还有一个:
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();
总是返回 null ...