Java 触发get NullPointerException时我的接口
我尝试使用Toast消息接口。如果应用程序未连接internet,我希望显示一条Toast消息,我希望使用java接口 这是Java 触发get NullPointerException时我的接口,java,android,interface,nullpointerexception,Java,Android,Interface,Nullpointerexception,我尝试使用Toast消息接口。如果应用程序未连接internet,我希望显示一条Toast消息,我希望使用java接口 这是MotherActivity.java。此文件实现ToastMessages.ToastMessageCallback public class MotherActivity extends ActionBarActivity implements ToastMessagges.ToastMessaggeCallback { ToastMessagg
MotherActivity.java
。此文件实现ToastMessages.ToastMessageCallback
public class MotherActivity extends ActionBarActivity implements ToastMessagges.ToastMessaggeCallback {
ToastMessagges toastMessagges;
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mother);
toastMessagges = new ToastMessagges();
AppStarter();
}
private void AppStarter(){
boolean checkinternet = InternetControl.checkInternetConnection( getApplicationContext() );
if( checkinternet ) {
toastMessagges.show_toast_messagge();
}
else {
}
}
@Override
public void LongToastMessagge() {
Toast.makeText(getApplicationContext(), "Hello World", Toast.LENGTH_LONG).show();
}
}
这是我的toastmessages.java文件
public class ToastMessagges {
ToastMessaggeCallback toastMessaggeCallback;
public void show_toast_messagge(){
toastMessaggeCallback.LongToastMessagge();
}
public static interface ToastMessaggeCallback {
public void LongToastMessagge();
}
}
当用户启动此应用程序时。我得到NullPointerException错误
Caused by: java.lang.NullPointerException
at com.medyasef.bulenttirasnewapp.bulenttiras.functions.ToastMessagges.show_toast_messagge(ToastMessagges.java:22)
at com.medyasef.bulenttirasnewapp.bulenttiras.MotherActivity.AppStarter(MotherActivity.java:36)
at com.medyasef.bulenttirasnewapp.bulenttiras.MotherActivity.onCreate(MotherActivity.java:29)
ToastMessagges.java:22
toastMessaggeCallback.LongToastMessagge();
对不起,英语不好。
请帮忙。
谢谢。您尚未初始化您的
ToastmessageCallback ToastmessageCallback
要做到这一点,请编写
ToastMessaggeCallback toastMessaggeCallback = new ToastMessaggeCallback(){
public void LongToastMessagge(){
// add some toasting code here
}
};
这将使一个对象实现您的接口(称为“匿名类”)。当然,您的
ToastmessageCallback
应该在方法LongToastMessagge
中执行某些操作,因此在那里添加所需的代码。您尚未初始化您的ToastmessageCallback ToastmessageCallback
要做到这一点,请编写
ToastMessaggeCallback toastMessaggeCallback = new ToastMessaggeCallback(){
public void LongToastMessagge(){
// add some toasting code here
}
};
这将使一个对象实现您的接口(称为“匿名类”)。当然,您的
ToastMessageCallback
应该在方法LongtoastMessage
中执行某些操作,因此在那里添加所需的代码。您的ToastMessages
类需要提供注册回调的方法。然后,您的活动
需要在构建ToastMessages
对象之后调用此方法将自身注册为回调。您的ToastMessages
类需要提供注册回调的方法。然后,您的活动
需要在构建ToastMessages
对象之后调用此方法将自身注册为回调。我建议您创建一个Util
类,而不是接口
。我在这里给你举一个Util
类的例子
public class Util {
public static void showToast(Context context, String text) {
Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
}
}
然后从活动中调用showtoos()
方法,如下所示
Util.showToast(YourActivity.this, "text");
public class MotherActivity extends ActionBarActivity implements ToastMessaggeCallback {
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mother);
AppStarter();
}
private void AppStarter(){
boolean checkinternet = InternetControl.checkInternetConnection( getApplicationContext() );
if( checkinternet ) {
showLongToastMessagge("Hello World");
}
else {
}
}
@Override
public void showLongToastMessagge(String text) {
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();
}
}
更新:
将你的接口
声明为一个个体,而不是像下面那样在类中
public interface ToastMessaggeCallback {
public void showLongToastMessagge(String text);
}
然后实现接口
,如下所示
Util.showToast(YourActivity.this, "text");
public class MotherActivity extends ActionBarActivity implements ToastMessaggeCallback {
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mother);
AppStarter();
}
private void AppStarter(){
boolean checkinternet = InternetControl.checkInternetConnection( getApplicationContext() );
if( checkinternet ) {
showLongToastMessagge("Hello World");
}
else {
}
}
@Override
public void showLongToastMessagge(String text) {
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();
}
}
我建议您创建一个
Util
类,而不是Interface
。我在这里给你举一个Util
类的例子
public class Util {
public static void showToast(Context context, String text) {
Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
}
}
然后从活动中调用showtoos()
方法,如下所示
Util.showToast(YourActivity.this, "text");
public class MotherActivity extends ActionBarActivity implements ToastMessaggeCallback {
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mother);
AppStarter();
}
private void AppStarter(){
boolean checkinternet = InternetControl.checkInternetConnection( getApplicationContext() );
if( checkinternet ) {
showLongToastMessagge("Hello World");
}
else {
}
}
@Override
public void showLongToastMessagge(String text) {
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();
}
}
更新:
将你的接口
声明为一个个体,而不是像下面那样在类中
public interface ToastMessaggeCallback {
public void showLongToastMessagge(String text);
}
然后实现接口
,如下所示
Util.showToast(YourActivity.this, "text");
public class MotherActivity extends ActionBarActivity implements ToastMessaggeCallback {
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mother);
AppStarter();
}
private void AppStarter(){
boolean checkinternet = InternetControl.checkInternetConnection( getApplicationContext() );
if( checkinternet ) {
showLongToastMessagge("Hello World");
}
else {
}
}
@Override
public void showLongToastMessagge(String text) {
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();
}
}
您是否初始化了ToastMessageCallback ToastMessageCallback?我想没有。如何初始化ToastMessageCallback ToastMessageCallback?你初始化了ToastMessageCallback ToastMessageCallback吗?我想没有。如何初始化ToastMessageCallback ToastMessageCallback?第一个thanx例外1。我的英语有点弱。所以我不能确切地说。您的示例正在运行,但不需要实现。我想要覆盖ToastMessageCallback,这个接口必须在MotherActivity中工作。像这样@Override public void LongToastMessagge(){Log.d(“denemeolkun”,“喜欢这个视频”);}我必须你能理解我。我想学习界面。谢谢,第一个例外。我的英语有点弱。所以我不能确切地说。您的示例正在运行,但不需要实现。我想要覆盖ToastMessageCallback,这个接口必须在MotherActivity中工作。像这样@Override public void LongToastMessagge(){Log.d(“denemeolkun”,“喜欢这个视频”);}我必须你能理解我。我想学习界面。谢谢。首先谢谢你的帮助。但我同时想要Java接口。我的问题只是一个小问题。再一次Thanx@HamidShatu。这个样品对我来说很好用,但这不是我想要的。我想弄清楚接口结构。我的英语有点弱。再次感谢:)首先感谢你的帮助。但我同时想要Java接口。我的问题只是一个小问题。再一次Thanx@HamidShatu。这个样品对我来说很好用,但这不是我想要的。我想弄清楚接口结构。我的英语有点弱。再次感谢:)