Java 如何使用两个活动之间的接口
我正在使用捆绑包通过intent将我的数据从一个活动传递到另一个活动。现在,另一个活动接收到此捆绑包,我将在此处显示我传递的值。现在,当单击a按钮时,它将触发一个具有函数的界面。在这里,它显示一个空点错误 主课Java 如何使用两个活动之间的接口,java,android,Java,Android,我正在使用捆绑包通过intent将我的数据从一个活动传递到另一个活动。现在,另一个活动接收到此捆绑包,我将在此处显示我传递的值。现在,当单击a按钮时,它将触发一个具有函数的界面。在这里,它显示一个空点错误 主课 public class MainActivity extends AppCompatActivity implements WILO.Communicator { int Tap=0,loss=9; @Override protected void onCreate(Bundle
public class MainActivity extends AppCompatActivity implements WILO.Communicator {
int Tap=0,loss=9;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CountDowntimer();
}
public void CountDowntimer()
{
new CountDownTimer(3000, 1000) {
@Override
public void onTick(long millisUntilFinished)
{
Tap+=1;
loss-=2;
}
@Override
public void onFinish()
{
Bundle arg=new Bundle();
arg.putInt("Tap",Tap);
arg.putInt("Loss",loss);
Intent i=new Intent(getBaseContext(),WILO.class);
i.putExtras(arg);
startActivity(i);
}
}.start();
}
@Override
public void Restart()
{
CountDowntimer();
}
}
威洛级
public class WILO extends Activity {
Communicator communicator;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wilo);
Bundle arg=getIntent().getExtras();
Button Restart;
TextView Tap,Loss;
Restart= (Button) findViewById(R.id.Restart);
Tap= (TextView) findViewById(R.id.Tap);
Loss= (TextView) findViewById(R.id.Loss);
Loss.setText(String.valueOf(arg.getInt("Loss")));
Tap.setText(String.valueOf(arg.getInt("Tap")));
Restart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
communicator.Restart();
finish();
}
});
}
interface Communicator
{
public void Restart();
}
}
错误
致命异常:主
进程:com.matrix.storm.question,PID:27805
java.lang.NullPointerException
位于com.matrix.storm.question.WILO$1.onClick(WILO.java:34)
在android.view.view.performClick上(view.java:4452)
在android.view.view$PerformClick.run(view.java:18451)
位于android.os.Handler.handleCallback(Handler.java:733)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5421)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:979)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)
在dalvik.system.NativeStart.main(本机方法)
如何使用两个活动之间的接口
不能使用接口连接两个活动。如果希望在两个活动之间发送接收数据,可以使用intent参数和ActivityResult方法的帮助
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivityForResult(intent, 2);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
}
这不需要两个活动,因为第一个活动中没有UI。因此,您应该仅在同一活动中创建和显示计时器的结果。在onFinish()中,您应该更新UI,而不是调用第二个活动。