[Android学习]简单的Intent案例

intent包含的六大信息

1 Component name

2 Action

3 Data

4 Category

5 Extras

6 Flags

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

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

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

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

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



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


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

<LinearLayout 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" 
    android:orientation="vertical">
    
    <Button
        android:id="@+id/Button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />

</LinearLayout>

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

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(new Button1listener());
    }
    
    class Button1listener implements OnClickListener{

		public void onClick(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;
    }
}

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

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-generated method stub
		super.onCreate(savedInstanceState);
        setContentView(R.layout.sac);
        Intent i1=getIntent();
        String val=i1.getStringExtra("text");
        t1=(TextView)findViewById(R.id.text2);
        t1.setText(val);
	}
}
 


猜你喜欢

转载自bbezxcy.iteye.com/blog/1685903
今日推荐