志在指尖
用双手敲打未来

Android中调用另一个Activity并返回结果

Android中点击按钮发动另一个Activity以及Activity之间传值:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103919470
在上面发动Activity和传值之后,怎样获取Acitvity的回来值。下面示例完成点击挑选头像按钮,跳转到头像显现Activity,并将挑选的图片的索引回来,在MainActivity中获取后设置头像。
效果
获取编程相关电子书、教程推送与免费下载。
完成
首要是主页面MainActivity的布局,增加一个挑选头像按钮和一个ImageView用来显现头像。
“1.0”encoding=”utf-8″?>
“http://schemas.android.com/apk/res/android”xmlns:app=”http://schemas.android.com/apk/res-auto”xmlns:tools=”http://schemas.android.com/tools”android:layout_width=”match_parent”android:layout_height=”match_parent”android:orientation=”vertical”tools:context=”.MainActivity”>
<ImageView
android:id=”@+id/image”android:layout_width=”wrap_content”android:layout_height=”wrap_content”/>
<Button
android:id=”@+id/button”android:text=”挑选头像”android:layout_width=”wrap_content”android:layout_height=”wrap_content”/>
然后在MainActivity中的OnCreate办法中,运用startActivityForResult能发动另一个Activity并能获得回来成果。Android
要设置一个恳求码,这儿是200。
Buttonbutton=(Button)findViewById(R.id.button);
button.setOnClickListener(newView.OnClickListener(){
@OverridepublicvoidonClick(Viewv){
Intentintent=newIntent(MainActivity.this,HeadActivity.class);
startActivityForResult(intent,200);
}
});
然后跳转到第二个Activity用来挑选头像。首要设置其布局文件,增加一个GridView用来显现要挑选的头像相片。
activity_head.xml
“1.0”encoding=”utf-8″?>
“http://schemas.android.com/apk/res/android”xmlns:app=”http://schemas.android.com/apk/res-auto”xmlns:tools=”http://schemas.android.com/tools”android:layout_width=”match_parent”android:layout_height=”match_parent”android:orientation=”vertical”tools:context=”.HeadActivity”>
<GridView
android:id=”@+id/gridView”android:numColumns=”4″android:layout_width=”wrap_content”android:layout_height=”wrap_content”/>
仿制代  然后来到其Activity,运用适配器为其设置相片源。
首要声明一个图片数组
privateint[]imageId=newint[]{
R.drawable.img1,R.drawable.img2
};
这儿引用了drawable下的两张头像相片。
然后运用适配器为相片设置数据源
GridViewgridView=(GridView)findViewById(R.id.gridView);
BaseAdapteradapter=newBaseAdapter(){
@OverridepublicintgetCount(){returnimageId.length;
}
@OverridepublicObjectgetItem(intposition){returnnull;
}
@OverridepubliclonggetItemId(intposition){return0;
}
@OverridepublicViewgetView(intposition,ViewconvertView,ViewGroupparent){
ImageViewimageView;if(convertView==null)
{
imageView=newImageView(HeadActivity.this);
imageView.setAdjustViewBounds(true);
imageView.setMaxWidth(158);
imageView.setMaxHeight(150);
imageView.setPadding(5,5,5,5);
}else{
imageView=(ImageView)convertView;
}
imageView.setImageResource(imageId[position]);returnimageView;
}
};
gridView.setAdapter(adapter);
然后在gridView的选项点击事情监听器中,获取选中相片的索引并经过Bundle目标的putInt和intent目标的putExtras将数据进行回来。然后调用setResult(200,intent);将成果进行回来,这儿的恳求成果码也设置为200。
完整HeadActivity.java
packagecom.badao.selectimage;
importandroidx.appcompat.app.AppCompatActivity;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.AdapterView;
importandroid.widget.BaseAdapter;
importandroid.widget.GridView;
importandroid.widget.ImageView;publicclassHeadActivityextendsAppCompatActivity{privateint[]imageId=newint[]{
R.drawable.img1,R.drawable.img2
};
@OverrideprotectedvoidonCreate(BundlesavedInstanceState){GridViewgridView=(GridView)findViewById(R.id.gridView);
BaseAdapteradapter=newBaseAdapter(){
@OverridepublicintgetCount(){returnimageId.length;
}
@OverridepublicObjectgetItem(intposition){returnnull;
}
@OverridepubliclonggetItemId(intposition){return0;
}
@OverridepublicViewgetView(intposition,ViewconvertView,ViewGroupparent){
ImageViewimageView;if(convertView==null)
{
imageView=newImageView(HeadActivity.this);
imageView.setAdjustViewBounds(true);
imageView.setMaxWidth(158);
imageView.setMaxHeight(150);
imageView.setPadding(5,5,5,5);
}else{
imageView=(ImageView)convertView;
}
imageView.setImageResource(imageId[position]);returnimageView;
}
};
gridView.setAdapter(adapter);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_head);
gridView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
@OverridepublicvoidonItemClick(AdapterViewparent,Viewview,intposition,longid){
Intentintent=getIntent();
Bundlebundle=newBundle();
bundle.putInt(“imageId”,imageId[position]);
intent.putExtras(bundle);
setResult(200,intent);
finish();
}
});
}
}
然后回到MainActivity怎样承受回来的成果。
ctrl+O重写办法onActivityResult,如果恳求码和回来成果码都是200,首要经过
Bundlebundle=data.getExtras();
获取Bundle目标。
然后经过
intimageId=bundle.getInt(“imageId”);
获取回来的相片索引数据。
然后给ImageView设置相片源。
@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,@NullableIntentdata){
super.onActivityResult(requestCode,resultCode,data);if(requestCode==200&&resultCode==200)
{
Bundlebundle=data.getExtras();intimageId=bundle.getInt(“imageId”);
ImageViewimageView=(ImageView)findViewById(R.id.image);
imageView.setImageResource(imageId);
}
}
MainActivity完整示例代码
packagecom.badao.selectimage;
importandroidx.annotation.Nullable;
importandroidx.appcompat.app.AppCompatActivity;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.ImageView;publicclassMainActivityextendsAppCompatActivity{
@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,@NullableIntentdata){
super.onActivityResult(requestCode,resultCode,data);if(requestCode==200&&resultCode==200)
{
Bundlebundle=data.getExtras();intimageId=bundle.getInt(“imageId”);
ImageViewimageView=(ImageView)findViewById(R.id.image);
imageView.setImageResource(imageId);
}
}
@OverrideprotectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Buttonbutton=(Button)findViewById(R.id.button);
button.setOnClickListener(newView.OnClickListener(){
@OverridepublicvoidonClick(Viewv){
Intentintent=newIntent(MainActivity.this,HeadActivity.class);
startActivityForResult(intent,200);
}
});
}
}

未经允许不得转载:IT技术网站 » Android中调用另一个Activity并返回结果
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载