2013-11-21 39 views
0

我的应用程序,我需要发送一个变量(经度)的数据到主要活动,但是当我试图打印值时,我得到一个空值。是一段代码。使用Intents从.java类发送数据到主要活动

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

其相当难以忽略和你的代码 – MDMalik

+0

'getApplicationContext()'是好的,但不是这个,你可以使用'YOUACTIVITY。这',你可能会得到空,因为变量'_longitude'可能为空。 –

+0

代码是否发布在活动类中? – Raghunandan

回答

0

执行如果是一个普通的.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(); 
0

变化getApplicationContext()我的价值观到this和删除您的getApplicationContext()

0

需要回答的最好的办法就是添加logcat的(如果你使用Eclipse)您的问题。

getApplicationContext()返回null,因为您创建了方法并使其返回null。首先获取意图所在活动的背景。它应该是:

Intent intent = new Intent(this,MainActivity.class); 
intent.putExtra("ParkingInfo._longitude", _longitude); 

然后你就应该开始的意图:

startActivity(intent); 

欲了解更多信息:Android developer

+0

不起作用,抛出这个msg 构造函数Intent(ParkingInfo,Class )未定义 –

+0

@ N.Nihar是的,它会因为它不是一个Activity类而需要活动上下文 – Raghunandan

0

删除您getApplicationContext()实现。设置意图后,您需要调用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(); 
     } 

编辑:

传递一个活动对象到该Java类的构造函数。在这里有一个类型为Context的成员变量。设置this.mContext=context,然后从您的try-catch块中调用mContext.startActivity(intent1)。例如:

class YourJavaClass{ 

Context mContext; 

public YourJavaClass(Context context) 
{ 
this.mContext=context; 
} 

} 

假设你正在实例化一个活动里面这个类,然后实例化Java类是这样的:

YourJavaClass object1 =新YourJavaClass(本);

+0

阅读评论pls其java类不是一项活动。 – Raghunandan

相关问题