Android 에서 다른 Activity 를 호출 하고 결 과 를 되 돌려 줍 니 다(프로필 사진 기능 을 선택 한 경우)
9083 단어 android호출 되 돌아 오기activity
Android 에서 단 추 를 누 르 면 다른 Activity 와 Activity 사이 의 값 을 시작 합 니 다.
https://www.jb51.net/article/178218.htm
위 에서 Activity 와 전송 값 을 시작 한 후 Acitvity 의 반환 값 을 어떻게 가 져 옵 니까?다음 예제 에 서 는 프로필 사진 선택 단 추 를 누 르 고 프로필 사진 으로 이동 하여 Activity 를 표시 하고 선택 한 그림 의 색인 을 되 돌려 MainActivity 에서 가 져 온 후 프로필 사진 을 설정 합 니 다.
효과.
주:
이루어지다
먼저 홈 페이지 의 MainActivity 레이아웃 입 니 다.프로필 사진 선택 단추 와 ImageView 를 추가 하여 프로필 사진 을 표시 합 니 다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="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"/>
</LinearLayout>
그리고 MainActivity 의 OnCreate 방법 에서 startActivity ForResult 를 사용 하면 다른 Activity 를 시작 하고 결 과 를 되 돌 릴 수 있 습 니 다.요청 코드 를 설정 하려 면 여 기 는 200 입 니 다.
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,HeadActivity.class);
startActivityForResult(intent,200);
}
});
그리고 두 번 째 Activity 로 넘 어가 서 프로필 사진 을 선택 하 세 요.먼저 레이아웃 파일 을 설정 하고 선택 할 프로필 사진 을 표시 하기 위해 GridView 를 추가 합 니 다.activity_head.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="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"/>
</LinearLayout>
그리고 Activity 에 와 서 어댑터 로 사진 원본 을 설정 합 니 다.먼저 그림 배열 을 설명 합 니 다.
private int[] imageId = new int[]{
R.drawable.img1,R.drawable.img2
};
여기에 drawable 아래 두 장의 프로필 사진 을 인용 했다.그리고 어댑터 를 사용 하여 사진 에 데이터 원본 을 설정 합 니 다.
GridView gridView = (GridView) findViewById(R.id.gridView);
BaseAdapter adapter = new BaseAdapter() {
@Override
public int getCount() {
return imageId.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if(convertView ==null)
{
imageView = new ImageView(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]);
return imageView;
}
};
gridView.setAdapter(adapter);
그리고 gridView 옵션 을 누 르 면 이벤트 모니터 에서 선택 한 사진 의 색인 을 가 져 오고 Bundle 대상 의 putInt 와 intent 대상 의 putExtras 를 통 해 데 이 터 를 되 돌려 줍 니 다.그리고 setResult(200,intent)를 호출 합 니 다.결 과 를 되 돌려 주 고 요청 결과 코드 도 200 으로 설정 합 니 다.전체 HeadActivity.java
package com.badao.selectimage;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class HeadActivity extends AppCompatActivity {
private int[] imageId = new int[]{
R.drawable.img1,R.drawable.img2
};
@Override
protected void onCreate(Bundle savedInstanceState) { GridView gridView = (GridView) findViewById(R.id.gridView);
BaseAdapter adapter = new BaseAdapter() {
@Override
public int getCount() {
return imageId.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if(convertView ==null)
{
imageView = new ImageView(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]);
return imageView;
}
};
gridView.setAdapter(adapter);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_head);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = getIntent();
Bundle bundle = new Bundle();
bundle.putInt("imageId",imageId[position]);
intent.putExtras(bundle);
setResult(200,intent);
finish();
}
});
}
}
그리고 메 인 액 티 비 티 로 돌아 가 돌아 온 결 과 를 어떻게 받 아들 일 것 인가?ctrl+O 재 작성 방법 onActivity Result,요청 코드 와 결과 코드 가 모두 200 이면 먼저 통과 합 니 다.
Bundle bundle = data.getExtras();
Bundle 대상 가 져 오기.그리고 통과.
int imageId = bundle.getInt("imageId");
되 돌아 오 는 사진 색인 데 이 터 를 가 져 옵 니 다.그리고 ImageView 에 사진 원본 을 설정 합 니 다.
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode ==200 && resultCode == 200)
{
Bundle bundle = data.getExtras();
int imageId = bundle.getInt("imageId");
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageResource(imageId);
}
}
MainActivity 전체 예제 코드
package com.badao.selectimage;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode ==200 && resultCode == 200)
{
Bundle bundle = data.getExtras();
int imageId = bundle.getInt("imageId");
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageResource(imageId);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,HeadActivity.class);
startActivityForResult(intent,200);
}
});
}
}
총결산위 에서 말 한 것 은 편집장 이 소개 한 안 드 로 이 드 에서 다른 Activity 를 호출 하여 결 과 를 되 돌려 주 는 것 입 니 다(프로필 사진 기능 을 선택 한 경우).여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.