我有以下 Activity 屏幕
Activity A - 包含一个链接到 Activity B 的按钮
Activity B - 包含订单确认,然后是打开 Activity C(以捕获签名)的“下一步”按钮
Activity C - 弹出一个对话框供用户输入他们的签名和一个完成按钮。
Activity A - 包含启动 Activity B 的 Intent 开始并实现 onActivityForResult
Intent intent = new Intent( this, ConfirmLines.class );
startActivityForResult( intent, GET_SIGNATURE );
protected void onActivityResult( int requestCode, int resultCode, Intent intent )
{
super.onActivityResult( requestCode, resultCode, intent );
switch ( requestCode )
{
case GET_SIGNATURE:
if ( resultCode == RESULT_OK )
{
getIntent().putExtra( SIGNATURE_DATA, intent.getStringExtra( SignatureCapture.SIGNATURE_RESULT ) );
getIntent().putExtra( SIGNATURE_TIME, "34552655544" ); // todo - remove hardcoded signature time
showDialog( PRINT_NAME );
}
else
{
//reset data after a cancel/back from signature screen
getIntent().putExtra( SignatureCapture.SIGNATURE_RESULT, "" );
}
break;
}
}
Activity B - 包含启动签名捕获 Intent 的代码以及返回 Activity A 的 onActivityForResult。
final Intent intent = new Intent( this, SignatureCapture.class );
startActivityForResult( intent, GET_SIGNATURE );
@Override
protected void onActivityResult( int requestCode, int resultCode, Intent intent )
{
super.onActivityResult( requestCode, resultCode, intent );
switch ( requestCode )
{
case GET_SIGNATURE:
if ( resultCode == RESULT_OK )
{
finish();
}
}
}
Activity C - 包含签名捕获代码和一个完成按钮
public void onClick( View view )
{
switch ( view.getId() )
{
case R.id.button_cancel:
dismiss();
nameValue.setText( "" );
notesValue.setText( "" );
imageView_button.setImageBitmap( null );
break;
case R.id.button_confirm:
final String printedText = String.valueOf( nameValue.getText() );
if ( printedText.isEmpty() )
{
Toast.makeText( getContext(), "Please enter a name", Toast.LENGTH_SHORT ).show();
}
else
{
if ( mDialogResult != null )
{
mDialogResult.finish( String.valueOf( nameValue.getText() ), String.valueOf( notesValue.getText() ) );
}
nameValue.setText( "" );
notesValue.setText( "" );
dismiss();
}
break;
}
}
当我返回 Activity A 时,我卡住了,resultCode 等于 0,这被定义为结果被取消。
它正在拾取最初从 Activity A 开始的正确的 requestCode,但似乎只是这个 resultCode 才是问题所在,如果有人能看出原因吗?
这可能与从 Activity C 返回时从 Activity B 调用 finish() 有关吗?
此外,我需要将 Intent 数据从 Activity C 传递到 A。如果我为 Activity A 启动 Activity,那么我在 Activity B 中有 finish(),它不会落入 onActivityForResult。
感谢高级帮助:]
最佳答案
如果你想从 Activity C 中获取返回给 Activity A 的结果:
从 Activity A 启动 Activity B:
Intent showB = new Intent(ActivityA, ActivityB);
startActivityForResult(showB, RequestCode);
在 Activity B 中调用 C:
Intent showC = new Intent(ActivityC);
showC.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivity(showC);
finish(); //Close Activity B
在 C 中:
//set the result code and close the activity
Intent result = new Intent();
setResult(resultCode, result);//like RESULT_OK
finish();
在 A 中:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
...... handle RequestCode here
}
关于Android 你能从链式 startActivityForResult 获得 Activity 结果吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19772284/
我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类
导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
当您在Ruby脚本中使用系统调用时,您可以像这样获得该命令的输出:output=`ls`putsoutput这就是thisquestion是关于。但是有没有办法显示系统调用的连续输出?例如,如果您运行此安全复制命令,以通过SSH从服务器获取文件:scpuser@someserver:remoteFile/some/local/folder/...它显示随着下载进度的连续输出。但是这个:output=`scpuser@someserver:remoteFile/some/local/folder/`putsoutput...不捕获该输出。如何从我的Ruby脚本中显示正在进行的下载进度?
怎样说才是明智的呢?if@thing=="01"or"02"or"03"or"04"or"05"(数字包含在数据类型字符串的列中。) 最佳答案 制作数组并使用.include?if["01","02","03","04","05"].include?(@thing)如果值真的都是连续的,你可以使用像(1..5).include?这样的范围对于字符串,你可以使用:if("01".."05").include?(@thing) 关于ruby-优雅的链式'or'用于测试Ruby中的相同变量,我
您能为RubyonRails推荐好的数据网格类/gem吗?喜欢http://code.google.com/p/zend-framework-datagrid/采埃孚 最佳答案 你也可以试试datagridgem。这不仅关注带有列的网格,还关注过滤器。classSimpleReportincludeDatagridscopedoUser.includes(:group)endfilter(:category,:enum,:select=>["first","second"])filter(:disabled,:eboolean)fi
我正在尝试将我更新的gem推送到rubygems.com并得到以下结果。~/dev/V2/V2GPTI(master)$gembuildv2gpti.gemspecSuccessfullybuiltRubyGemName:v2gptiVersion:0.2File:v2gpti-0.2-universal-darwin-13.gem~/dev/V2/V2GPTI(master)$gempushv2gpti.gemspecERROR:Whileexecutinggem...(Gem::Package::FormatError)packagemetadataismissinginv2g
所以基本上是为了好玩,我试图生成一列数字(7位数字只有0和1)我的代码很短:a=rand(0000000-1111111)b=220a1=rand(0000000-1111111)a2=rand(0000000-1111111)a3=rand(0000000-1111111)a4=rand(0000000-1111111)a5=rand(0000000-1111111)whileb!=0putsaputsa2putsa3putsa4putsa5end我的问题是,不是生成随机的0和1列,而是所有,而是使用了数字。 最佳答案 这是惯用的
我正在尝试使用RubyEventMachine访问使用SSL证书身份验证的HTTPSWeb服务,但我没有让它工作。我编写了以下简单代码块来对其进行端到端测试:require'rubygems'require'em-http'EventMachine.rundourl='https://foobar.com/'ssl_opts={:private_key_file=>'/tmp/private.key',:cert_chain_file=>'/tmp/ca.pem',:verify_peer=>false}http=EventMachine::HttpRequest.new(url).g
重新定义Float#/似乎没有效果:classFloatdef/(other)"magic!"endendputs10.0/2.0#=>5.0但是当另一个中缀运算符Float#*被重新定义时,Float#/突然采用了新的定义:classFloatdef/(other)"magic!"enddef*(other)"spooky"endendputs10.0/2.0#=>"magic!"我很想知道是否有人可以解释这种行为的来源,以及其他人是否得到相同的结果。ruby:ruby2.0.0p353(2013-11-22)[x64-mingw32]要快速确认错误,请运行thisscript.