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并能获得回来成果。
要设置一个恳求码,这儿是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);
}
});
}
}
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com