Activity 를 시작 하 는 두 가지 방법 startActivity ForResult 와 startActivity
QQ 커 뮤 니 케 이 션 3 군 가입 을 환영 합 니 다: 317874559
4. 567913. 다른 하 나 는 특정한 Activity 를 열 어 데 이 터 를 얻 은 후에 메 인 인터페이스 에 되 돌아 오 는 Activity 이다.복잡 한 메 인 인터페이스 에서 데 이 터 를 더 조작 하면 더 번 거 로 워 보일 수 있 기 때문이다.
작업 의 기본 절차: 1. 메 인 인터페이스 에서 startActivity ForResult (Intent intent, int requestCode) 를 호출 하여 특정한 Activity 를 시작 합 니 다.그 중에서 두 번 째 매개 변수 requestCode 는 특정한 요청 코드 를 나타 낸다.
2. 특정한 Activity 에서 데 이 터 를 얻 은 후 메 인 인터페이스 에 대응 하 는 Intent 에 데 이 터 를 넣 습 니 다.
3. 현재 Activity 의 결과 코드 설정
5. 현재 Activity 를 닫 고 메 인 화면 으로 돌아 가기;메 인 인터페이스 에서 (int requestCode, int resultCode, Intent data) 방법 을 터치 합 니 다.매개 변 수 는 각각 요청 코드, 결과 코드, 얻 은 데이터 에 있 습 니 다.
6. 메 인 화면 은 요청 코드 와 결과 코드 에 따라 특정한 Activity 에서 얻 은 데 이 터 를 판단 합 니 다.
실례
MainActivity.java
Intent intent=new Intent();
intent.setClass(MainActivity.this, SecondActivity.class);
MainActivity.this.startActivity(intent);
CitysActivity.java
package com.example.startactivityforresulttest;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
Button bt1;
EditText ed1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1 = (Button) findViewById(R.id.bt1);
ed1 = (EditText) findViewById(R.id.ed1);
bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent(MainActivity.this,CitysActivity.class);
// CitysActivity 0
startActivityForResult(intent, 0);
}
});
}
// Activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==0&&resultCode==0){
Bundle bundle=data.getBundleExtra("name");
ed1.setText(bundle.getString("name")+"--"+bundle.getString("names"));
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
activity_city.xml
package com.example.startactivityforresulttest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.SimpleExpandableListAdapter;
import android.widget.TextView;
public class CitysActivity extends Activity {
ExpandableListView exp1;
String[] city = { " ", " " };
String[][] citys = { { " ", " ", " " }, { " ", " ", " " } };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_city);
exp1 = (ExpandableListView) findViewById(R.id.exp1);
//
List<Map<String, String>> parentlist = new ArrayList<Map<String, String>>();
//
List<List<Map<String, String>>> chlilist = new ArrayList<List<Map<String, String>>>();
for (int i = 0; i < city.length; i++) {
//
Map<String, String> map = new HashMap<String, String>();
map.put("pnames", city[i]);
parentlist.add(map);
List<Map<String, String>> parentlists = new ArrayList<Map<String, String>>();
for (int j = 0; j < citys[i].length; j++) {
//
Map<String, String> maps = new HashMap<String, String>();
maps.put("names", citys[i][j]);
parentlists.add(maps);
}
chlilist.add(parentlists);
}
final SimpleExpandableListAdapter simple = new SimpleExpandableListAdapter(
this, parentlist, R.layout.parantcity,
new String[] { "pnames" }, new int[] { R.id.pa1 }, chlilist,
R.layout.chicity, new String[] { "names" },
new int[] { R.id.pa2 });
exp1.setAdapter(simple);
exp1.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
//
String cityO=simple.getGroup(groupPosition).toString();
String cityP=simple.getChild(groupPosition, childPosition).toString();
String []city=cityO.substring(1, cityO.length()-1).split("=");
String []citys=cityP.substring(1, cityO.length()-1).split("=");
// Bundle
Bundle bundle=new Bundle();
bundle.putString("name", city[1]);
bundle.putString("names", citys[1]);
// Activity Activity Intent
Intent intent=CitysActivity.this.getIntent();
intent.putExtra("name", bundle);
// Activity
CitysActivity.this.setResult(0, intent);
// Activity
CitysActivity.this.finish();
return false;
}
});
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ExpandableListView
android:id="@+id/exp1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ExpandableListView>
</LinearLayout>
chicity.xml
<RelativeLayout 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"
tools:context=".MainActivity" >
<Button
android:id="@+id/bt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/city"/>
<EditText
android:id="@+id/ed1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/bt1"
android:layout_alignParentRight="true"/>
</RelativeLayout>
parantcity.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pa2"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</TextView>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 개체 변환 맵통일 처리 류 의 입구 에서 모든 뒤의 처리 절차 에 필요 한 수 치 를 문맥 의 MAP 대상 에 통일 시 켜 야 합 니 다. 그 중에서 지속 적 인 DO 대상 을 포함 합 니 다.만약 에 대상 을 하나하나 옮 겨 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.