android中intent主要是用来实现activity的跳转和消息的传递
这里我首先通过简单的两个例子来说明跳转和简单的消息的传递,然后简单数据的回传在后面的例子在android学习之intent跳转二里面,android中的xml布局我就没有写了
package com.example.jumptoothera;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
public static MainActivity activity;
// getInstance获得当前对象,这个是为了在第二个activity里面,可以关闭第一个activity,可以不管
public static MainActivity getInstance() {
return activity;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 将本类对象给给activity
activity = this;
}
public void myonclick(View view) {
// Intent 意图,四大组件的桥梁,我们通过它在四大组件之间传递消息,启动组件
// Intent 第一个参数,当前类对象,第二个参数,第二个类对象(类型.class,Class.ForName(类名))
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
// 启动intent
startActivity(intent);
}
}
package com.example.jumptoothera;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class SecondActivity extends Activity {
Button bu;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bu = (Button) findViewById(R.id.bu_j);
bu.setText("关闭第二个activity");
}
public void myonclick(View v) {
// 关闭第二个activity
SecondActivity.this.finish();
// 获取Mainactivity并关闭
// MainActivity m=MainActivity.getInstance();
// m.finish();
// 上面的关闭Mainactivity的方式并不推荐
// 我们在使用上面的方式的时候必须注意上面的activity是否为空
}
}
package com.example.jumptodata;
import com.example.jumptoothera.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class FirstActivity extends Activity {
EditText et;
Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.first);
et=(EditText) findViewById(R.id.et_data);
bt=(Button) findViewById(R.id.bth_check);
}
public void myonClick(View view) {
//获取数据
String data=et.getText().toString();
//启动activity
Intent intent=new Intent(FirstActivity.this,SecActivity.class);
//Intent中含有一个Bundle的容器,类似哈希map是以键值对的对象存放数据.
//数据可以填基本类型或者是可序列化的对象
intent.putExtra("key", data);
startActivity(intent);
}
}
package com.example.jumptodata;
import com.example.jumptoothera.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class SecActivity extends Activity {
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
tv=(TextView) findViewById(R.id.tv_data);
//拿到intent;
Intent intent=getIntent();
String data=intent.getStringExtra("key").toString();
tv.setText(data);
}
}