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