android - 使用 putExtra() 和 getExtra() 将从另一个 Activity 发送的空变量的值设置为 0 以外的值

标签 android variables android-intent

我不知道以前是否有人问过这个问题,找不到任何相关信息:如何将通过 putExtra/getExtra 发送到另一个应用程序的空变量的值设置为非零值默认情况下?

让我解释一下原因,并向您展示一个小架构以使事情更清楚:
enter image description here

如您所见,在我的应用程序中,我有一个与数据库通信并根据您单击的按钮发送不同信息的方法。所以对于每个按钮,我都有这种代码:

private OnClickListener listener_button1 = new OnClickListener() {
    public void onClick(View v) {
        Intent t = new Intent(MainActivity.this,
                ResultListViewActivity.class);
        t.putExtra("myVariable1", 10);
        t.putExtra("myVariable3", 45);
        t.putExtra("myVariable2", 2);
        t.putExtra("myVariable4", 1000);
        startActivity(t);

因为我想让我的程序尽可能轻便,所以我只为每个按钮定义了一个方法,因为它在做同样的事情。问题是,并非每个按钮都发送相同数量的变量:有些只发送 1 或 2 个变量,有些最多发送 4 个变量。当它不发送任何东西时,getExtra() 会自动将值设置为 0,这对我来说很糟糕,因为 0 指的是我数据库中的特定内容(我更希望将我的变量设置为 1000,因为 1000 不会特别指代任何事物)。

所以我想总结一下,不必每次都指定我不使用像这段代码这样的变量,而是找到一种方法让它成为一种自动化:

  t.putExtra("myVariable4", 1000);

我已经尝试在调用方法的 Activity 开始时像这样初始化值,但它不起作用:
整数变量 = 1000 ;

这部分代码似乎系统地把它设置为 0 :

Bundle bundle = getIntent().getExtras();
    int variable4 = bundle.getInt("variable4");

ps:我不想手动设置所有没有特定值的变量,因为在我的实际应用程序中,它远远超过 4 个输入和 3 个按钮,所以每个按钮都非常重listener 很多变量设置为 1000.
我希望我说得够清楚了!

最佳答案

一般是这样的:-

bundle.getInt("passedVariable", defaultValue);

在您的情况下,由于默认值为 1000

bundle.getInt("variable4", 1000); 应该可以帮到您。

关于 docs 的信息.

关于android - 使用 putExtra() 和 getExtra() 将从另一个 Activity 发送的空变量的值设置为 0 以外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15286971/

相关文章:

android - 为什么在 android 中单击我的应用程序的后退按钮后,我以前的 Activity 会自动刷新?

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

mysql - 如何复制表的某列的值类型和长度?

Android,解析 422 响应返回的 json 时出现问题

android - Android Gingerbread 中的 OpenGL 性能不佳

function - 将表名和列名定义为 plpgsql 函数中的参数?

android - 在没有自动播放的情况下打开视频库

java - 如何固定图像裁剪的矩形大小?

java - 如果我使用 tbmp 骨架但 tbmp 骨架不是主要 Activity ,我应该怎么做才能正确接收回合制比赛更新?

android - android中处理多个fragment的回压