Android 는 시작 한 Activity 에서 전 송 된 데 이 터 를 가 져 오 는 소결 을 배 웁 니 다.
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// TextView
textView=(TextView)findViewById(R.id.textView);
findViewById(R.id.btnSend).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,AnotherActivity.class);
startActivityForResult(intent,0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
textView.setText(" Activity :"+data.getStringExtra("data"));
}
}
XML 파일:activitymain.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.androidtest.MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Activity"
android:id="@+id/btnSend" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView" />
</LinearLayout>
시 작 된 Activity:Button 과 editText 를 포함 하여 데 이 터 를 전송 하고 전송 할 데 이 터 를 입력 합 니 다.
public class AnotherActivity extends AppCompatActivity {
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_another);
editText= (EditText) findViewById(R.id.editText);
Button button= (Button) findViewById(R.id.btnSendBack);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//
Intent i=new Intent();
i.putExtra("data",editText.getText().toString());
setResult(1,i);
finish();
}
});
}
}
xml 파일:activityanother.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.androidtest.AnotherActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:id="@+id/btnSendBack"/>
</LinearLayout>
실행 결과:보충:여기 서 보 내기 단 추 를 누 르 면 이전 Activity 로 돌아 가 는 데 문제 가 없 지만 시스템 자체 의 리 턴 단 추 를 누 르 면 오류 가 발생 합 니 다.이 bug 가 발생 한 이 유 는 resultCode 가 판단 되 지 않 았 기 때 문 입 니 다.시스템 자체 의 리 턴 키 를 누 른 resultCode=RESULTCANCELED,그래서 달라 요.
해결 방법:그래서 여기 서 requestCode 와 resultCode 가 역할 을 발휘 할 수 있 습 니 다.상기 프로그램 에서 requestCode=0,resultCode=1,즉 이 Activity 로 전환 하 는 지,이전 Activity 로 돌아 가 는 지,아니면 시스템 리 턴 키 를 통 해 진행 되 는 지 판단 해 야 하기 때문에 MainActivity 중의 onActivity Result()방법 은 다음 과 같이 개선 할 수 있 습 니 다.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==0){
if(resultCode==1){
textView.setText(" Activity :"+data.getStringExtra("data"));
}
}
}
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 시작 되 는 Activity 에서 전 송 된 데 이 터 를 얻 는 것 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Nginx 시작 초기 화 과정Nginx 의 시작 초기 화 는 main 함수 에 의 해 이 루어 집 니 다. 이 함 수 는 Nginx 시작 초기 화 작업 을 완성 하고 모든 기능 모듈 의 입구 입 니 다.Nginx 의 초기 화 작업 은 주로 ng...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.