Как отправить данные - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь использовать дополнительные функции для отправки данных из ChronometerActivity в PlayerHomeActivity, но это не работает.

ChronometerActivity:

public class ChronometerActivity extends AppCompatActivity {

@BindView(R.id.chronometer)
Chronometer chronometer;
@BindView(R.id.fab_play) FloatingActionButton fab_play;
@BindView(R.id.fab_pause) FloatingActionButton fab_pause;
@BindView(R.id.fab_stop) FloatingActionButton fab_stop;
@BindView(R.id.btn_player) Button btn_player;
@BindView(R.id.btn_golkeeper) Button btn_goolkeeper;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_chronometr);
    ButterKnife.bind(this);

    timeWhenStopped=0;
    ChronometerListener listener = new ChronometerListener(this);
    fab_play.setOnClickListener(listener);
    fab_pause.setOnClickListener(listener);
    fab_stop.setOnClickListener(listener);
    btn_player.setOnClickListener(listener);
    btn_goolkeeper.setOnClickListener(listener);

}

PlayerHomeActivity:

public class PlayerHomeActivity extends AppCompatActivity {

private int typePlayer = getIntent().getExtras().getInt("typePlayer");


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_player_home);

    BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
    PlayerHomeActivitylistener listener = new PlayerHomeActivitylistener(this);
    navigation.setOnNavigationItemSelectedListener(listener);

    .....
  }
}

ChronometerListener:

public class ChronometerListener implements View.OnClickListener {
ChronometerActivity activity;
public ChronometerListener(ChronometerActivity activity) {
    this.activity=activity;
}

@Override
public void onClick(View v) {
    String typePlayer;
    switch (v.getId()){

        case R.id.fab_play:
            activity.start(activity.getChronometer());
            break;
        case R.id.fab_stop:
            activity.stop(activity.getChronometer());
            break;
        case R.id.fab_pause:
            activity.pause(activity.getChronometer());
            break;
        case R.id.btn_player:
            typePlayer="0";
            Intent intent =new Intent(activity.getApplicationContext(), PlayerHomeActivity.class);

            intent.putExtra("typePlayer", typePlayer);
            activity.startActivity(intent);
            break;
        case R.id.btn_golkeeper:
            typePlayer="1";
            Intent intent2 = new Intent(activity.getApplicationContext(), PlayerHomeActivity.class);
            intent2.putExtra("typePlayer", typePlayer);
            activity.startActivity(intent2);
            break;

    }

}

Я получаю эту ошибку:

E / AndroidRuntime: FATAL EXCEPTION: main Процесс: simonerusso.it.beneventoscouting, PID: 5963 java.lang.RuntimeException: Невозможно создать экземпляр действия ComponentInfo() 'для ссылки на пустой объект в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2236) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2387) в android.app.ActivityThread.access $ 800 (ActivityThread.Java: 151) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1303) на android.os.Handler.dispatchMessage (Handler.java:102) в android.os.Looper.loop (Looper.java:135) в android.app.ActivityThread.main (ActivityThread.java:5254) в java.lang.reflect.Method.invoke(Собственный метод) в java.lang.reflect.Method.invoke (Method.java:372) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:903) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:698) Вызывается: java.lang.NullPointerException: Попытка вызвать виртуальный метод 'android.os.Bundle android.content.Intent.getExtras ()' для ссылки на пустой объект в simonerusso.it.beneventoscouting.view.PlayerHomeActivity. (PlayerHomeActivity.java:116) в java.lang.reflect.Constructor.newInstance (собственный метод) в java.lang.Class.newInstance (Class.java:1606) в android.app.Instrumentation.newActivity (Instrumentation.java:1066) в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2226) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2387) в android.app.ActivityThread.получить доступ к $ 800 (ActivityThread.java:151) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1303) в android.os.Handler.dispatchMessage (Handler.java:102) в android.os.Looper.loop (Looper.java:135) на android.app.ActivityThread.main (ActivityThread.java:5254) на java.lang.reflect.Method.invoke (собственный метод) на java.lang.reflect.Method.invoke (Method.java:372) на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:903) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:698)

Ответы [ 2 ]

1 голос
/ 27 июня 2019
public class PlayerHomeActivity extends AppCompatActivity {


 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player_home);


 int typePlayer = getIntent().getExtras().getInt("typePlayer");

BottomNavigationView navigation = (BottomNavigationView) 
findViewById(R.id.navigation);
PlayerHomeActivitylistener listener = new PlayerHomeActivitylistener(this);
navigation.setOnNavigationItemSelectedListener(listener);

.....
   }
}

переместился ниже строки внутри объекта ()

 int typePlayer = getIntent().getExtras().getInt("typePlayer");
0 голосов
/ 27 июня 2019

Вам нужно позвонить getIntent().getExtras().getInt("typePlayer"); внутри деятельности onCreate()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...