简单介绍
在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent intent)方法来传入一个Intent对象,这个Intent对象我们可以精确的指定我们需要跳转的Activity上,或者通过Intent对象来指定我们要完成的一个action操作,同时我们可以通过intent来携带一些值,进而来Activity见跳转的时候也可以把值传过去。
通过setClass方法来指定我们要跳转的Activity
Intent intent=new Intent(this,SecondActivity.class);
intent.putExtra(key,value);
startActivity(intent);
//或者
Intent intent=new Intent();
intent.setClass(MainActivity.this,SecondActivity.class);
intent.putExtra(key,value);
startActivity(intent);
点击事件
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
根据索引获取对象然后传对象 对象不能直接传需要序列化一下
tab tab = list.get(position);
Intent intent = new Intent(MainActivityList.this,MainActivitygai.class);
intent.putExtra("student", tab);
1是俩端定义的相当于端口号和下面方法中判断的必须一致
startActivityForResult(intent, 1);
}
回传的话需要调用此方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
判断俩端端口号是不是一致
if (requestCode==1&&resultCode==1) {
tab student=(tab) data.getSerializableExtra("name");
list点set方法进行修改 然后刷新数据
list.set(index, student);
adapter.notifyDataSetChanged();
}
}
传到另一个页面 点击把值传回去
intent = getIntent();
序列化过后的对象
tab = (tab) intent.getSerializableExtra(“student”);
传值接收那个页面传过来的值
mt2.setText(tab.getTitle());
mc2.setText(tab.getUrl());- @Override
public void onClick(View v) {
String string = mt2.getText().toString();
String string2 = mc2.getText().toString();
把修改完以后的数据传回去
tab.setTitle(string);
tab.setUrl(string2);
intent.putExtra(“name”, tab);
setResult(1, intent);
finish();
}
- @Override