[Android学习]容易的Intent案例
[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); } }