美文网首页
Android跳转页面

Android跳转页面

作者: xiesen | 来源:发表于2019-07-13 20:22 被阅读0次

Intent函数

​ 1.Intent 是指在相互独立的组件(如两个 Activity)之间提供运行时绑定功能的对象。
​ 2.Intent 表示一个应用“执行某项操作的意向”。
​ 3.Intent intent = new Intent(this, NameActivity.class)。

startActivity(intent);

​ startActivity() 函数将启动 Intent 指定的 NameActivity 实例.

需要返回至原先页面

AndroidManifest.xml 中添加必需的 <activity> 元素

案例:

<activity
   android:name=".LoginPage"
   android:parentActivityName=".MainActivity">
   <!-- The meta-data tag is required if you support API level 15 and lower -->
   <meta-data
   android:name="android.support.aaa"
   android:value=".MainActivity" />
</activity>

传值以及接值

方法很多,现在只写两种

第一种:

发送方:

Intent intent = new Intent();
intent.putExtra("name", "诸葛亮");
intent.putExtra("age", 50);
intent.putExtra("IQ", 200.0f);
intent.setClass(MainActivity.this, SecondActivity.class);
MainActivity.this.startActivity(intent);

接受方:

Intent intent = getIntent();
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", 0);
float IQ = intent.getFloatExtra("IQ", 0.0f);
textview2.setText("name:"+name+",age:"+age+",IQ:"+IQ);

第二种:

对象类要实现Parclelable接口

发送方:

Intent intent = new Intent();
Person person = new Person("孙悟空",500,55.6f);
intent.putExtra("person", person);
intent.setClass(MainActivity.this, SecondActivity.class);
startActivity(intent);

接受方:

Intent intent = getIntent();
Person person = intent.getParcelableExtra("person");
textview = (TextView) findViewById(R.id.textview);
textview.setText(person.toString());

对象类:

public class Person implements Parcelable {
    private String name;
    private int age;
    private float weight;

    ....
}

fragment到Activity

由于fragment可以使用 getActivity() 访问Activity实例,所以这一步实现很简单。

intent=new Intent(getActivity(), UserLoginActivity.class);
startActivity(intent);

fragment到fragment

1.在相应fragment全局中声明fragment管理对象及事务对象。

// Fragment管理对象
    private FragmentManager manager;
    private FragmentTransaction ft;

2.在OnCreate方法中初始化fragment管理对象

@Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        manager = getFragmentManager();
    }

3.从 FragmentManager 获得一个FragmentTransaction实例

MyJDEditFragment myJDEditFragment = new MyJDEditFragment();
ft = manager.beginTransaction();
//当前的fragment会被myJDEditFragment替换
ft.replace(R.id.realtabcontent, myJDEditFragment);
ft.addToBackStack(null);
ft.commit();


//简略写法
   FragmentManager FM = getSupportFragmentManager();
   FM.beginTransaction().replace(R.id.main_FrameLayout, fm1).commit();

那么如何在fragment切换的时候还可以传递参数呢?

我们可以使用setArguments()方法绑定一个bundle对象传递到另外一个fragment中。

myJDEditFragment.setArguments(bundle);

在另外一个fragment中(myJDEditFragment)使用getArguments()可以拿到bundle对象。

相关文章

网友评论

      本文标题:Android跳转页面

      本文链接:https://www.haomeiwen.com/subject/lyomkctx.html