我不知道以前是否有人问过这个问题,找不到任何相关信息:如何将通过 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);
我已经尝试在调用方法的 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/