简单的Intent案例

来源:互联网 发布:百雀羚淘宝无盒试用装 编辑:程序博客网 时间:2024/06/04 18:46

intent包含的六大信息

1 Component name

2 Action

3 Data

4 Category

5 Extras

6 Flags

 

解释一下几个信息的含义吧

Component name,定义要启动哪一个组件,启动的组件不一定是Activity。

Action,指定新启动组建的动作。

Date,向另外一个Activity里面传送的数据。

Category,向另外一个Activity传送的多个键值对~~~个人感觉有点类似与c++的map诶



21.jpg (35.89KB, 下载次数: 0)

下载附件  保存到相册

2012-9-2710:34 上传

 

一个简单的界面,按下按钮之后跳转的另一个界面,并通过intent传递一个字符串类型的键值对数据



22.jpg (24.97KB, 下载次数: 0)

下载附件  保存到相册

2012-9-2710:34 上传

 

第一个Activity的配置文件非常简单,就是一个LinearLayout里面放一个按钮。


[mw_shl_code=java,true]<LinearLayoutxmlns: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:orientation="vertical">
   
    <Button
        android:id="@+id/Button1"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
        />

</LinearLayout>
[/mw_shl_code]

在MainActivity里面设置button1按钮,复写内部类Button1listener继承OnClickListener,并且在类内复写onClick函数。在函数中new一个Intent对象,调用这个对象的setClass函数设置要跳转向的Activity,并可以通过putExtra函数向这个对象中插入键值对。startActivity()使用这个intend对象实现Activity之间的跳转。代码如下


Java代码

[mw_shl_code=java,true]package com.example.abcc;

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;

public class MainActivity extends Activity {
        private Button jumpbut=null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       jumpbut=(Button)findViewById(R.id.Button1);
        jumpbut.setText(R.string.button1text);
        //设置当前button的监听器
        jumpbut.setOnClickListener(newButton1listener());
    }
   
    class Button1listener implements OnClickListener{

                public voidonClick(View v) {
                       // TODO Auto-generated method stub
                       //new一个intend变量
                       Intent ia=new Intent();
                       //加入一个键值对
                       ia.putExtra("text", "我爱我娘纸");
                       //设定跳转向的Activity
                       ia.setClass(MainActivity.this,secAct.class);
                       //启动Activity。并传递一个intend对象
                       MainActivity.this.startActivity(ia);
                }
           
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
       getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
[/mw_shl_code]

在新的Activity中通过getIntent();获取intent变量,并通过getStringExtra();获取intent中的键值对~~


Java代码

[mw_shl_code=java,true]package com.example.abcc;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class secAct extends Activity {

    TextView t1=null;
        @Override
        protected void onCreate(Bundle savedInstanceState){
                // TODO Auto-generatedmethod stub
               super.onCreate(savedInstanceState);
        setContentView(R.layout.sac);
        Intent i1=getIntent();
        Stringval=i1.getStringExtra("text");
        t1=(TextView)findViewById(R.id.text2);
        t1.setText(val);
        }
}
[/mw_shl_code]

(转自iteye)