Android 从发送意图的位置识别
我用条形码扫描仪扫描一些代码。为此,我在条形码扫描仪中调用了扫描操作的意图 问题是我想从我的主要活动中的两个不同方法发送它,用于不同的目的(不同的代码类型扫描)。由于我只有一个答案是Android 从发送意图的位置识别,android,android-intent,Android,Android Intent,我用条形码扫描仪扫描一些代码。为此,我在条形码扫描仪中调用了扫描操作的意图 问题是我想从我的主要活动中的两个不同方法发送它,用于不同的目的(不同的代码类型扫描)。由于我只有一个答案是onActivityResult()如何区分意图调用的起始位置 我能用些旗子或标签什么的吗 最简单的方法之一是在intent中传递int-extra,从活动A传递1,从活动B传递2。然后使用get extra并读取数字,现在您知道此意图源自哪个活动。当然还有更复杂的方法,但这是最简单的方法。最简单的方法之一是传递in
onActivityResult()
如何区分意图调用的起始位置
我能用些旗子或标签什么的吗 最简单的方法之一是在intent中传递int-extra,从活动A传递1,从活动B传递2。然后使用get extra并读取数字,现在您知道此意图源自哪个活动。当然还有更复杂的方法,但这是最简单的方法。最简单的方法之一是传递int extra IN intent int int int intent INTER,从活动A传递1,从活动B传递2。然后使用get extra并读取数字,现在您知道此意图源自哪个活动。当然还有更复杂的方法,但这是最简单的方法。当发送意图时,请使用此方法
Intent.putExtra("caller", caller_id)
接收意图使用时
Bundle extras = getIntent().getExtras();
int id = extras.getInt("caller");
在调用setResult之前
intent.puInt("phrase", id);
在onActivityResult中使用
Bundle extras = intent.getExtras();
int id = extras.getId( "selection" );
发送意图时,请使用此选项
Intent.putExtra("caller", caller_id)
接收意图使用时
Bundle extras = getIntent().getExtras();
int id = extras.getInt("caller");
在调用setResult之前
intent.puInt("phrase", id);
在onActivityResult中使用
Bundle extras = intent.getExtras();
int id = extras.getId( "selection" );
启动活动时,可以提供
requestCode
。然后,在重写ActivityResult时,将返回此信息。通过这种方式,您可以区分请求
private static final int METHOD_1_ID = 1;
private static final int METHOD_2_ID = 2;
private void sendIntentFromMethod2(){
startActivityForResult(yourIntent, METHOD_2_ID);
}
private void sendIntentFromMethod1(){
startActivityForResult(yourIntent, METHOD_1_ID);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == METHOD_1_ID){
// ...
}else if(requestCode == METHOD_2_ID){
// ...
}
}
启动活动时,可以提供
requestCode
。然后,在重写ActivityResult时,将返回此信息。通过这种方式,您可以区分请求
private static final int METHOD_1_ID = 1;
private static final int METHOD_2_ID = 2;
private void sendIntentFromMethod2(){
startActivityForResult(yourIntent, METHOD_2_ID);
}
private void sendIntentFromMethod1(){
startActivityForResult(yourIntent, METHOD_1_ID);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == METHOD_1_ID){
// ...
}else if(requestCode == METHOD_2_ID){
// ...
}
}
如果您像这样启动sacn条形码的活动
startActivityForResult(intent,0);
然后从两种不同的方法,像这样更改通话
//从第一种方法开始
startActivityForResult(intent,1);
//从第二种方法
startActivityForResult(intent,2);
然后
}
编辑:啊,giZm0的答案更简单如果您像这样启动sacn条形码的活动
startActivityForResult(intent,0);
然后从两种不同的方法,像这样更改通话
//从第一种方法开始
startActivityForResult(intent,1);
//从第二种方法
startActivityForResult(intent,2);
然后
}
编辑:啊,giZm0的答案更简单强>