Android 从另一个类调用函数时显示空指针异常

Android 从另一个类调用函数时显示空指针异常,android,performance,android-intent,android-activity,nullpointerexception,Android,Performance,Android Intent,Android Activity,Nullpointerexception,我有一个名为car的类,它在GoodActivity类中实现LocationListerner类(默认类)。因此,Car类具有名为onLocationChanged()的函数。在onLocationChanged()函数中,我调用了名为fun()的函数,这是另一个名为Contact3的类的静态函数。调用函数fun()时,我得到一个空指针异常错误 fun()函数调用了另一个名为SongsActivity的类中的posts()方法 好活动课 public class GoodActivity e

我有一个名为car的类,它在
GoodActivity类中实现
LocationListerner类(默认类)
。因此,
Car类
具有名为
onLocationChanged()
的函数。在
onLocationChanged()
函数中,我调用了名为
fun()
的函数,这是另一个名为Contact3的类的静态函数。调用函数
fun()
时,我得到一个空指针异常错误

fun()
函数调用了另一个名为SongsActivity的类中的
posts()
方法

好活动课

  public class GoodActivity extends Activity {
  Button button2;
  good s;
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_good);         
    }

  public class car implements LocationListener{
    public void onLocationChanged(Location location) {           
         try{
             String name="vijay";           
             Contact3.fun(GoodActivity.this,name);
             }catch(Exception e){
                Toast.makeText(GoodActivity.this, e.toString()+"good", Toast.LENGTH_LONG).show();
        }}}}
    public class SongsActivity extends Activity {
    public void posts(String name){     
    try {
    Log.d("Tests", s);`
    } catch (Exception e) {
        Toast.makeText(SongsActivity.this, e.toString(), Toast.LENGTH_SHORT).show();
       }}}
联系人3类

  public class Contact3 {
  public static void fun(Context context,String name) { 
  SongsActivity s=new SongsActivity();
  s.posts(name);    
  }
  }
歌曲活动类

  public class GoodActivity extends Activity {
  Button button2;
  good s;
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_good);         
    }

  public class car implements LocationListener{
    public void onLocationChanged(Location location) {           
         try{
             String name="vijay";           
             Contact3.fun(GoodActivity.this,name);
             }catch(Exception e){
                Toast.makeText(GoodActivity.this, e.toString()+"good", Toast.LENGTH_LONG).show();
        }}}}
    public class SongsActivity extends Activity {
    public void posts(String name){     
    try {
    Log.d("Tests", s);`
    } catch (Exception e) {
        Toast.makeText(SongsActivity.this, e.toString(), Toast.LENGTH_SHORT).show();
       }}}
调用函数
fun()
时,我得到一个空指针异常错误

请帮忙

SongsActivity s=新的SongsActivity()

行导致问题,因为您正在尝试使用
SongsaActivity。这将在不启动活动的情况下创建上下文。如果
SongsActivity
是普通的java类,则无需扩展活动。您可以通过将上下文从
fun
传递到
posts
来显示Toast

按如下方式操作:

1.
SongsActivity

2.在posts方法中添加一个参数作为上下文:

 public void posts(String name,Context context){     
        try {
           Toast.makeText(context, name, Toast.LENGTH_SHORT).show();
         } catch (Exception e) {

         }
       } 
3.通过
fun
方法传递上下文:

  SongsActivity s=new SongsActivity();
  s.posts(name,context);  

您可以发布日志吗?您不能使用不可见的活动制作
Toast
SongsActivity
不是可见的,但您尝试使用
SongsActivity来显示
Toast
。此
无法创建活动类的实例,您将获得NPE,因为活动的上下文为空,如果您想从其他类获得toast消息,您必须将
上下文
传递给该类,而不从songsactivity中删除extends活动。活动是否可能?我不想删除活动…@好:让我知道你为什么不想删除
扩展活动
?在这个活动中有一些注册的用户交互。。。是否可以不删除活动?@Good:然后创建单独的普通java类并添加
posts
方法,然后您可以从两个活动类访问
posts
方法。这样就可以了。。。在上述代码中,是否可以使用activity(活动)访问函数?