как отправить данные на активность b БЕЗ ЗАПУСКНОЙ ДЕЯТЕЛЬНОСТИ B - PullRequest
0 голосов
/ 13 апреля 2020

Я создаю игровое приложение Bin go, Tambola или Hous ie ... Когда пользователь нажимает кнопку «Создать номер», он должен получить случайное число и отправить его на мероприятие b (или на доску). . java) чтобы в этом задании (на доске) он взял его и выделил, чтобы, когда пользователи захотят проверить доску, он мог go выполнить это действие с помощью кнопки и посмотреть, какие все числа были выполнены. .. Здесь я не знаю, как это сделать

, и это основной код активности;


import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;

import android.view.View;
import android.widget.ImageView;

import android.widget.TextView;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;



public class NumberActivity extends AppCompatActivity
{
    ImageView ivBoard, ivGenerate;
    TextView tvNumber;
    public int randomNumber;
    public int count = 0;


    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_number);
        ivBoard = findViewById(R.id.ivBoard);
        ivGenerate = findViewById(R.id.ivGnn);
        tvNumber = findViewById(R.id.tvNumber);




        final Integer[] numbers = new Integer[90];

        for (int i = 0; i < 90; i++) {
            numbers[i] = i+1;
        }
        final Intent activityIntent;


        List<Integer> integerList = Arrays.asList(numbers);
        Collections.shuffle(integerList);
        integerList.toArray(numbers);

        randomNumber = numbers[count];
        count++;


        ivBoard.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(NumberActivity.this, com.example.fullhouse.Board.class);
                startActivity(intent);
            }
        });

        ivGenerate.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v) {
                randomNumber = numbers[count];
                System.out.println(randomNumber);
                count++;

                Intent intent = new Intent(NumberActivity.this, com.example.fullhouse.Board.class);
                intent.putExtra("number", randomNumber);

//                if (activityIntent != null) {
//                    startActivity(activityIntent);
//                } else {
//                    // show error that user didn't clicked on ivBoard via Toast or some logic
//                }
            }
        });

    }

}

Если необходимо, дайте мне знать, чтобы добавить любой другой код или вещь, которую я уважаю ваш ответ, спасибо

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

В соответствии с вашим вопросом, как отправить данные в действие b БЕЗ ЗАПУСКА ДЕЯТЕЛЬНОСТИ B , я хотел бы сказать, что можно отправлять данные из действия в другое действие без его запуска. Вы можете использовать LocalBroadcastManager или EventBus .

Эти ресурсы могут вам очень помочь:

Как использовать LocalBroadcastManager?

EventBus в 3 шага

0 голосов
/ 13 апреля 2020

Вы можете сохранить весь список в объекте Intent и десериализовать его:

        ivGenerate.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v) {
              Intent intent = new Intent(NumberActivity.this, 
               com.example.fullhouse.Board.class);
              List<Integer> values = getListOfIntegers();
              intent.putExtra("YOUR_KEY", values);
              startActivity(activityIntent);
            }
        });

И на принимающей стороне в операции Board:

List<Integer> values = (List<Integer>) getIntent().getSerializableExtra("YOUR_KEY");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...