Android 从另一个类调用函数时显示空指针异常
我有一个名为car的类,它在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
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(活动)访问函数?