Используйте onActivityResult, когда кнопка IsClicked - PullRequest
0 голосов
/ 25 марта 2020

У меня есть действие, которое после нажатия ToggleButton запускает другое действие следующим образом:

Intent intent = new Intent(ChatActivity.this, BBActivity.class);
startActivityForResult(intent,1);

В этом втором действии выполняется несколько вычислений, а затем:

confirmedData.putExtra( "confirmedB", (Serializable) bSelected );
confirmedData.putExtra( "dateInMillis",DateInMillis );
setResult(ChatActivity.RESULT_OK,confirmedData);

Затем я использую следующее, чтобы получить результаты в своем первом задании:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 1) {
        if(resultCode == ChatActivity.RESULT_OK){
            ArrayList<DiscoverB> confirmedB = (ArrayList<DiscoverB>)data.getSerializableExtra("confirmedB");
            Long DateInMillis = data.getLongExtra( "dateInMillis", System.currentTimeMillis());
            Log.d("ERROR", "error");
        }
        if (resultCode == ChatActivity.RESULT_CANCELED) {

        }
    }
}

Теперь я хотел бы использовать confirmedB После нажатия кнопки в моем задании.

Как я могу передать значения из onActivityResult в мой ClickListener?

ChatAdapter.OnConfirmClickListener confirmListener = new ChatAdapter.OnConfirmClickListener(){
    @Override
    public void onClick(Button confirmB) {

        ???myarraylist = onActivityResult(requestCode, resultCode, data)???
        HERE I NEED MY confirmedB

    }
};

Спасибо

1 Ответ

0 голосов
/ 25 марта 2020

В первом упражнении объявите переменную

ArrayList<DiscoverB> confirmedB;

В OnActivityResult вы можете инициализировать подтвержденныйB

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 1) {
        if(resultCode == ChatActivity.RESULT_OK){
            confirmedB = (ArrayList<DiscoverB>)data.getSerializableExtra("confirmedB");
            Long DateInMillis = data.getLongExtra( "dateInMillis", System.currentTimeMillis());
            Log.d("ERROR", "error");
        }
        if (resultCode == ChatActivity.RESULT_CANCELED) {

        }
    }
}

Теперь вы можете использовать его в свой clickListener,

ChatAdapter.OnConfirmClickListener confirmListener = new ChatAdapter.OnConfirmClickListener(){
    @Override
    public void onClick(Button confirmB) {

        ???myarraylist = onActivityResult(requestCode, resultCode, data)???
       here you can use confirmedB

    }
};
...