如何在不启动活动B的情况下将数据发送到活动b

时间:2020-04-13 15:46:46

标签: java android android-studio

我是一个制作Bingo或Tambola或Housie游戏的应用程序...只要用户单击该按钮,就会生成一个数字按钮,然后它应该获得随机数并将其发送到活动b(或board.java),以便该活动(板)将被选中并突出显示,以便当用户想要检查板时,他可以通过按钮转到该活动,并查看已完成所有编号的操作... 这里我不知道怎么做

这是主要活动代码;


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 :(得分:0)

根据您的问题如何在不启动活动B的情况下将数据发送到活动b ,我想说的是,可以将数据从活动发送到另一个活动而无需启动它。您可以使用LocalBroadcastManagerEventBus

这些资源可能对您有很大帮助:

How to use LocalBroadcastManager?

EventBus in 3 steps

答案 1 :(得分:-1)

您可以将整个列表存储在Intent对象中并反序列化:

method(dateRange){
  listOfDate = expandDate(dateRange);
  forkjoinRecursiveTask = new RecursiveTask(ListOFdates)
  forkjoinpool.submit(forkjoinRecursiveTask)

  result = forkjoinRecursiveTask.join()
}

在董事会活动的接收方:

        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);
            }
        });