我是我的应用程序,我需要将变量(经度)的数据发送到主活动,但是在尝试打印值时我得到一个空值。这是一段代码。
try
{
ExifInterface exif = new ExifInterface(sd.toString());
_longitude=getExifTag(exif,ExifInterface.TAG_GPS_LONGITUDE);
exif.saveAttributes();
Intent intent1 = new Intent(getApplicationContext(),MainActivity.class);
intent1.putExtra("ParkingInfo._longitude", _longitude);
}catch(IOException e)
{
e.printStackTrace();
}
and here is the method declaration for getApplicationContext()
private Context getApplicationContext() {
// TODO Auto-generated method stub
return null;
}
是因为getApplicationContext()返回一个空值我得到一个空值,如果是这样我应该用它替换什么,以便我可以在MainActivity中获取我的值
答案 0 :(得分:0)
将getApplicationContext()
更改为this
并删除getApplicationContext()
答案 1 :(得分:0)
如果是Plain .java类,则创建一个方法
public double returnData()
{
ExifInterface exif = new ExifInterface(sd.toString());
_longitude=getExifTag(exif,ExifInterface.TAG_GPS_LONGITUDE);
exif.saveAttributes();
return _longitude;// assuming _longitude is double
}
在MainActivity中
MyJavaClassName my = new MyJavaClassName();
double value = my.returnData();
答案 2 :(得分:0)
要回答的最佳方法是添加问题的logcat(如果使用Eclipse)。
getApplicationContext()返回null,因为您创建了该方法并使其返回null。首先获取意图所在活动的上下文。它应该是:
Intent intent = new Intent(this,MainActivity.class);
intent.putExtra("ParkingInfo._longitude", _longitude);
然后你应该开始意图:
startActivity(intent);
了解更多信息:Android developer
答案 3 :(得分:0)
删除你的getApplicationContext()实现。您需要在设置intent后调用startActivity(intent1)方法。
try
{
ExifInterface exif = new ExifInterface(sd.toString());
_longitude=getExifTag(exif,ExifInterface.TAG_GPS_LONGITUDE);
exif.saveAttributes();
Intent intent1 = new Intent(getApplicationContext(),MainActivity.class);
intent1.putExtra("ParkingInfo._longitude", _longitude);
mContext.startActivity(intent1);
}catch(IOException e)
{
e.printStackTrace();
}
修改强>
将Activity对象传递给此java类的构造函数。在此有一个Context类型的成员变量。设置this.mContext=context
,然后从try-catch块中调用mContext.startActivity(intent1)
。例如:
class YourJavaClass{
Context mContext;
public YourJavaClass(Context context)
{
this.mContext=context;
}
}
假设您在Activity中实例化此类,然后像这样实例化您的java类:
YourJavaClass object1 = new YourJavaClass(this);
答案 4 :(得分:0)
你可以:
创建一个这样的方法:
public void startMainActivity(String _longitude){
Intent intent1 = new Intent(getApplicationContext(),MainActivity.class);
intent1.putExtra("ParkingInfo._longitude", _longitude);
startActivity(intent1);
}
从java类中调用startMainActivity(longitude)