将int传递给另一个活动

时间:2019-02-21 19:03:45

标签: java android android-activity textview int

在你解雇我之前: 我知道那里有无数的教程,而且我自己也知道如何将数据传递给另一个ACtivity,

在我看来,这是不同的。 “通常”数据通过Intent,Bundles ecc传递给另一个活动,并且另一个活动已启动。

这是我的情况:

我有一个带4个参数(图像,字符串,字符串, int )的项目 在AdapterClass中,我有一个PopUpView可以重新获取这4个参数。

我想实现以下目标: 单击按钮的第四个参数int应该发送到Main活动,并插入MainActivity内部的textView中,(这是此操作与其他问题)启动主要活动。

这怎么办?

TIA。

4 个答案:

答案 0 :(得分:2)

使用BroadcastReceiver将第4个int发送给MainActivity 在PopupView中执行以下操作:

    Intent intent = new Intent("SOMEACTION");
    intent.putExtra("4th_int", value);
    activity.sendBroadcast(intent);'

//在MainActivity中:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        IntentFilter filter = new IntentFilter("SOMEACTION");
        this.registerReceiver(mReceiver , filter); 
        }

        @Override
        public void onDestroy() {
            super.onDestroy();
            this.unregisterReceiver(this.mReceiver );
        }

        private BroadcastReceiver mReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                if (intent.getAction() == "SOMEACTION") {
                     // retrieve the 4th int value and update something in MainActivity
                }
            }
        };

答案 1 :(得分:0)

这有效且非常容易

Intent intent = new Intent(getApplicationContext(),YourActivity.class);
    intent.putExtra("number",1);
    startActivity(intent);




    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
//get the data from the YourActivity
        int userid = (Integer) getIntent().getExtras().get("number");


            }


            };

答案 2 :(得分:0)

您的问题不是很清楚,您能指出要存档的内容吗? 为什么将数据传递到活动中?

答案 3 :(得分:0)

当将数据传递给活动时,只要该活动不在堆栈中或处于活动状态,则该数据是无用的,直到通过在create lifecycle方法上调用i'ts触发了该活动,然后初始化该视图,并且数据可以进行处理,所以如果没有问题,除了活动在服务的后台线程上仍处于活动状态之外,无法存档问题