Android四大组件Activity,及Intent的简单用法

Activity是一种可以包含用户界面的组件,主要用于和用户交互。一个App中可以有多个Activity。

import android.support.v7.ActionBarActivity;

import android.os.Bundle;

public void MainActivity ectends ActionBarActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState){
    
        super.onCreate();
        setContentView(R.id.activity_main);
        }


    @Override 
    protected void onStart(){
        super.onStart();
        }
     @Override 
     protected void onResume(){
         super.onResume();
     }
     @Override
     protected void onPause(){
         super.onPause();
     }
     @Override
     protected void onStop(){
         super.onStop();
     }
     @Override
     protected void onDestroy(){
         super.onDestroy();
     }
     @Override
     protected void onRestart(){
         super.onRestart();
     }
     }

Activity启动后依次执行onCreate(),onStart(),onResume(),当到达onResume状态时Activity就处于可见状态,用户可以与之交互。当Activity1跳转到Activity2时,先执行Activity1的onPause(),再执行Activity2的onCreate()、onStart()、onResume(),最后执行Activity1的onStop()。

Intent:是Android程序中各组件之间进行交互的重要方式

1、显式Intent

Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);

//在AndroidManifest.xml中为SecondActivity注册

<Application>
<activity android:name=".SecondActivity"> </activity>
</Application>

2、隐式Intent

 Intent intent = new Intent("com.example.activitytest.ACTION_START");
 startActivity(intent);
 
 //AndroidManifest.xml

 <activity name=".SecondActivity">
     <intent-filter>
         <action android:name="com.example.activitytest.ACTION_START">
         <category android:name="android.intent.category.DEFAULT"/>
     </intent-filter>
 </activity>

3、向下一个Activity传递数据

 //MainActivity.java

//Intent android.content.Intent.putExtra(String name, String value)

String data = "Hello SecondActivity";
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra("extra_data",data);
startActivity(intent);

//SecondActivity.java

Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");
TextView textView = (TextView)findViewById(R.id.textView);
textView.setText(data);

4、返回数据给上一个Activity

 //MainActivity.java  
/*void android.support.v4.app.FragmentActivity.startActivityForResult
(Intent intent, int requestCode)*/

package sunny.example.activityforresult;

import android.support.v7.app.ActionBarActivity;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

import android.view.View.OnClickListener;

public class MainActivity extends ActionBarActivity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  Button forResult = (Button)findViewById(R.id.forResult);
  forResult.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub

    Intent intent = new Intent(MainActivity.this,SecondActivity.class);
    /*void android.support.v4.app.FragmentActivity.startActivityForResult(Intent intent, int requestCode)*/
    startActivityForResult(intent,1);//requestCode只要是一个唯一值就可以
   }
   
  });
  
  
 }
 @Override
 protected void onActivityResult(int requestCode,int resultCode,Intent data){
  switch(requestCode){
  case 1:
   if(resultCode == RESULT_OK){
    String returnData = data.getStringExtra("data_return");
    TextView returnd = (TextView)findViewById(R.id.returnd);
    returnd.setText(returnData );
    Log.i("MainActivity",returnData);
   }
   break;
  default:
    break;
  }
 }

//SecondActivity.java


package sunny.example.activityforresult;

import android.content.Intent;

import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;


public class SecondActivity extends ActionBarActivity{
 @Override
 protected void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.second);
  
  Button Back = (Button)findViewById(R.id.back);
  Back.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    

    Intent intent = new Intent();
    intent.putExtra("data_return", "Hello MainActivity");
    //void android.app.Activity.setResult(int resultCode, Intent data)
    
    setResult(RESULT_OK,intent);
    finish();
   }
   
  });
 }
}

转载于:https://my.oschina.net/doudoulee/blog/631590

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值