我被这个问题困扰了两天了。我已经检查了这个论坛和其他论坛,但不能得到一个问题或答案,足够接近我的问题。
基本上,我试图从非活动的OnPostExecute
执行打开activity
的意图,我从MainActivity中的方法中的OnMarkerClick
函数发送上下文(mainActivty.this)和字符串。这将转到非activity中的一个构造函数,该构造函数具有上下文和字符串的参数。
问题是,我得到了一个空异常,但调试后,上下文不是空的,它具有MainActivity的值,但当执行意图时,它返回一个空异常。我也试过许多变体。activity,getApplicationContext,This.context,(classname).context,(classname).This并尝试了全局上下文,但没有成功.奇怪的是,我将意图放入一个if语句if(context!=null),它通过并执行意图,这反过来给我一个没有意义的null异常。我知道我是新的android,如果谁有任何其他的建议,打开activity,将非常感谢。
E/AndroidRuntime:致命异常:主进程:com.example.quantusapps.joggerTest,PID:12253 java.lang.nullPointerException:尝试在Android.content.context.getPackageName(contextwrapper.java:131)处的Android.content.context.getPackageName(contextwrapper.java:131)处的Android.content.content.context.getPackageName(contextwrapper.java:77)处的Android.content.content.content.intenthod)在java.lang.reflect.method.invoke(method.java:372)在com.android.internal.os.zygoteInit$methodandargscaller.run(zygoteInit.java:1028)在com.android.internal.os.zygoteInit.main(zygoteInit.java:823)<
这是带有onMarkerClick的Mainactivity方法
mGoogleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
String bctID = bctExtraMarkerInfo.get(marker.getId());
BusCoachTramInfo busCoachTramInfo = new BusCoachTramInfo(bctID, MainActivity.this);
busCoachTramInfo.execute(bctID);
return false;
}
});
这就是非activity施工方。
Context context;
BusCoachTramInfo(String busstopID, Context context) {
this.context = context;
naptanIdUrl = "https://api.tfl.gov.uk/StopPoint/" + busstopID + "/Arrivals?app_key=" + tfl_API_KEY + "&app_id=9c0b3009";
}
这就是null异常发生的地方。
@Override
protected void onPostExecute(TreeMap<Integer, String[]> Map) {
super.onPostExecute(Map);
Intent i = new Intent(context, BusArrivalTime.class);
context.startActivity(i);
完成任务的一种方法是将AsyncTask
实现为方法的一部分,该方法将MainActivity
的实例作为参数。另一方面,AsyncTask
将与WeakReference
一起工作:
void doExecuteBusCoachTramInfo(final String busstopID, MainActivity activity){
final WeakReference<MainActivity> wrActivity = new WeakReference<MainActivity>(MainActivity.this);
new AsyncTask<Void, Void, TreeMap<Integer, String[]>>(){
@Override
protected TreeMap<Integer, String[]> doInBackground(Void... params)
{
// your code from BusCoachTramInfo here
}
@Override
protected void onPostExecute(TreeMap<Integer, String[]> integerTreeMap)
{
// get back to the original Activity if possible:
MainActivity activity = wrActivity.get();
if (activity != null){
Intent i = new Intent(activity, BusArrivalTime.class);
activity.startActivity(i);
}
}
}.execute();
}
此方法可能是mainactivity
的一部分,但也可以属于其他类。
我的公共类中有一个私有子类。这个私有类扩展了AsyncTask。在onPostExecute()中,我必须通过自定义适配器发送对象列表。但问题是,当我获取主公共类(私有子类的父类)的“上下文”时,它在@Override(OnPostExecute())上给出了一个错误。 它在@Override上给出了一个错误。我必须获取私有子类的父类的上下文(这扩展了asyncTask并具有onPostExecu
我正在为一个项目使用。当我执行'desc table_name'时,我看到表格输出显示字段的被设置为,但是'default'被设置为。为什么一个字段没有,而默认为本身?
本文向大家介绍NULL是什么意思?相关面试题,主要包含被问及NULL是什么意思?时的应答技巧和注意事项,需要的朋友参考一下 NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。 对NULL这个值的任何比较都会生产一个NULL值。 您不能把任何值与一个 NULL值进行比较,并在逻辑上希望获得一个答案。 使用IS NULL来进行NULL判断
本文向大家介绍NULL是什么意思?相关面试题,主要包含被问及NULL是什么意思?时的应答技巧和注意事项,需要的朋友参考一下 NULL(空)这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上跌跟头您也不要觉得意外。 NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。假设您的SQL Server数据库里有ANSI_NULLS,当然在默认情况下会有,对NULL这个值
我正在尝试解析XML文件,但我对文档有问题! 我对这一行有意见: 但是,我得到的是null而不是START\u标记。 XML HTTP POST响应: 这是我遇到问题的代码。 谢谢你的帮助!
我从数据库中读取一个字符串值,并通过servlet将其打印到jsp页面上。问题是,在Jsp上,如果数据库中的字段为空,就会打印出字符串“null”。如果数据库中的值为空,我需要一个空白的编辑框。 我的数据库访问对象: 我的Servlet: 我的Jsp: 我的数据库是Oracle 11g,浏览器是FireFox。