import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
Button button_1=(Button)findViewById(R.id.button1);
button_1.setOnClickListener(new OnClickListener(){
public void onClick(View v)
{
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivityForResult(intent,1);
//这里我们使用了startActivity()方法来启动SecontActivity
//请求码只要是一个唯一值就可以
//String data="Hello SecondActivity";
//Intent intent=new Intent(MainActivity.this,SecondActivity.class);
//intent.putExtra("extra_data", data);
//Intent intent=new Intent("com.example.iii.ACTION_START");
//intent.addCategory("com.example.iii.MY_CATEGORY");
//startActivity(intent);
//Toast.makeText(MainActivity.this, "you clicked Button", Toast.LENGTH_SHORT).show();
}
});
}
//使用startActivityForResult()方法 启动SecondActivity,在SecondActivity
//SecondActivity被销毁之后会调上一个活动的onActivityResult()方法
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
switch(requestCode){
case 1:
if(resultCode==RESULT_OK)
{
String returnedData=data.getStringExtra("data_return");
Log.d("MainActivity",returnedData);
}
break;
default:
}
}
//onActivityResult()方法带有三个参数,第一个参数requestCode
//第一个启动活动时传入的请求码,第二个参数requestCode,
//即我们在返回数据室传入的处理结果,第三个参数 data
//携带着返回数据的Intent
//由于一个活动中可能调用startActivityForResult()方法启动很多不同的活动
//每个活动返回都会调到onActivityResult()这个方法中
//所以我们检查请求码来判断数据源
//SecontActivity 返回之后我们再通过判断resultCode的值来判断处理结果
//是否成功
@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;
}
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId()){
case R.id.add_item:
Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}
}
package com.example.iii;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SecondActivity extends Activity{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.second_layout);
//Intent intent=getIntent();
//String data=intent.getStringExtra("extra_data");
//Log.d("SecondActivity",data);
Button button_2=(Button)findViewById(R.id.button2);
button_2.setOnClickListener(new OnClickListener(){
public void onClick(View v)
{
//给上一个活动传入数据
Intent intent=new Intent();
intent.putExtra("data_return", "Hello MainActivity");
setResult(RESULT_OK,intent);
finish();
//此处的Intent仅仅是用来传送数据而已
//方法setResult() 用来设置返回数据 ,第一个参数用来向上一个活动
//返回处理结果 一般只使用RESULT_OK RESULT_CANCELED 第二个参数
//传回带有数据的Intent
//finish()销毁当前活动
//Intent intent = new Intent(Intent.ACTION_DIAL);
//intent.setData(Uri.parse("tel:10086"));
//Intent intent = new Intent(Intent.ACTION_VIEW);
//intent.setData(Uri.parse("http://www.baidu.com"));
//startActivity(intent);
//Toast.makeText(MainActivity.this, "you clicked Button", Toast.LENGTH_SHORT).show();
}
});
}
//有时候用户不是在SecontActivity中并不是通过点击按钮,而是按下BACK键
//这种情况下 我们需要重写onBackPressed()方法
public void onBackPressed()
{
Intent intent=new Intent();
intent.putExtra("data_return", "Back MainActivity");
setResult(RESULT_OK,intent);
finish();
}
}