Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用putExtra()和getExtra()将从另一个活动发送的空变量的值设置为0以外的值_Android_Variables_Android Intent - Fatal编程技术网

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

Android 使用putExtra()和getExtra()将从另一个活动发送的空变量的值设置为0以外的值,android,variables,android-intent,Android,Variables,Android Intent,我不知道以前是否有人问过这个问题,也找不到关于这个问题的任何信息:如何将通过putExtra/getExtra发送到另一个应用程序的空变量的值默认设置为零以外的值? 让我解释一下原因,并向您展示一个小模式,让事情更清楚: 如您所见,在我的应用程序中,我有一个与数据库通信的方法,并根据您单击的按钮发送不同的信息。所以对于每个按钮,我都有这样的代码: private OnClickListener listener_button1 = new OnClickListener() { pub

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

让我解释一下原因,并向您展示一个小模式,让事情更清楚:

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

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);
在调用该方法的活动开始时,我已经尝试像这样初始化该值,但它不起作用:
int变量=1000

似乎这部分代码系统地将其设置为0:

Bundle bundle = getIntent().getExtras();
    int variable4 = bundle.getInt("variable4");
ps:我不想手动设置所有没有特定值的变量,因为在我的实际应用程序中,它远不止4个输入和3个按钮,因此每个按钮侦听器都有很多变量设置为1000,这将非常沉重。

我希望我说得够清楚了

通常是这样的:-

bundle.getInt("passedVariable", defaultValue);
在您的情况下,由于默认值为
1000

bundle.getInt(“variable4”,1000)
应该可以帮你解决这个问题


有关的信息。

您可以设置默认值

bundle.getInt("variable4",default-value)

你就不能说如果(bundle.getInt(“variable4”)!=0)然后设置变量吗?太好了,它确实做到了!非常感谢,这肯定会简化我的代码。