我將數據從一個活動傳遞到另一個活動,通過使用bundle的intent.now此捆綁由另一個活動在這裏接收我將顯示我通過的值當一個按鈕點擊它是假設發射一個有功能的接口。它顯示一個零點錯誤。如何使用兩個活動之間的接口
MainActivity.class
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();
}
}
WILO.class
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 at com.matrix.storm.question.WILO $ 1.onClick(WILO.java:34) at android.view.View.performClick(View.java:4452) at android.view.View $ PerformClick.run(View (Handler.java:95) at android.os.Looper.loop(Looper.java。) :Method.java:136) at android.app.ActivityThread.main(ActivityThread.java:5421) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java: 515) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:979) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795) at dalvik.system.NativeStart.main (本機方法)
您不需要兩個活動,因爲第一個活動中沒有UI。所以你應該只在同一個活動中創建和顯示計時器的結果。在onFinish()中,您應該更新UI而不是調用第二個活動。 – anubh