Activity 를 시작 하 는 두 가지 방법 startActivity ForResult 와 startActivity

첫 번 째 방법 보 세 요.http://blog.csdn.net/x605940745/article/details/9902895
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>

좋은 웹페이지 즐겨찾기