Android组件系列---当前Activity跳转到另一个Activity的详...

Android中,Activity是一种基本的组件,用于展示应用程序的用户界面。在应用程序中,经常需要从当前的Activity跳转到另一个Activity,实现不同界面的展示与操作。本篇文章将详细介绍如何在Android中实现Activity的跳转,包括使用Intent实现Activity跳转、传递数据等常用操作方法,并提供案例说明。

一、使用Intent实现Activity跳转

Intent是Android系统中用于传递信息(包括跳转信息)的对象,使用Intent可以在Activity之间进行跳转。下面介绍具体的操作方法:

1. 创建Intent对象

在当前Activity中,我们需要创建一个Intent对象来指定需要跳转的Activity,使用Intent的构造函数完成:

```

Intent intent = new Intent(this, TargetActivity.class);

```

其中,第一个参数是当前的Context对象(Activity继承于Context),第二个参数是要启动的Activity。

2. 启动Activity

Intent对象创建完成后,我们需要使用startActivity方法启动目标Activity:

```

startActivity(intent);

```

3. 添加额外的数据

除了简单的Activity跳转,我们还可能需要在Activity之间传递一些数据。这时可以使用Intent的putExtra方法,在Intent对象中添加要传递的数据:

```

intent.putExtra("key", value);

```

其中,key是一个字符串作为数据的标识,value可以是任意类型的数据。

4. 获取传递的数据

在目标Activity中,我们可以利用getIntent方法获取传递过来的Intent对象,并通过该对象获取传递的数据:

```

Intent intent = getIntent();

String value = intent.getStringExtra("key");

```

这样就完成了Activity之间的数据传递操作。

二、常用的Activity跳转方式

除了上述使用Intent实现Activity跳转的方式,Android还提供了多种Activity跳转方式,下面列举几种常用的方式:

1. startActivityForResults方法

该方法用于启动一个需要返回结果的Activity。在当前Activity中调用该方法启动目标Activity,当目标Activity结束后,会返回一个结果给当前Activity:

```

Intent intent = new Intent(this, TargetActivity.class);

startActivityForResult(intent, requestCode);

```

其中,requestCode是一个int类型的请求码,用于区分返回的结果。

在目标Activity中,当需要返回结果时,可以使用setResult方法将结果设置并返回给当前Activity:

```

Intent intent = new Intent();

intent.putExtra("key", value);

setResult(RESULT_OK, intent);

finish();

```

这样,当目标Activity结束时,将会返回一个RESULT_OK的结果码和包含键值对的Intent对象给当前Activity,可以在当前Activity的onActivityResult方法中获取该结果。

2. 启动系统内置Activity

Android提供了一些系统内置的Activity,如发送短信、打电话、拍照等,我们可以通过Intent来启动这些Activity:

发送短信:

```

Uri uri = Uri.parse("smsto:10086");

Intent intent = new Intent(Intent.ACTION_SENDTO, uri);

intent.putExtra("sms_body", "hello");

startActivity(intent);

```

打电话:

```

Uri uri = Uri.parse("tel:10086");

Intent intent = new Intent(Intent.ACTION_DIAL, uri);

startActivity(intent);

```

拍照:

```

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivity(intent);

```

三、案例说明

下面通过一个简单的案例来说明在Android中实现Activity跳转的具体操作流程。

要实现的功能:在当前Activity中输入一个文本,点击button按钮后跳转到目标Activity并将文本传递过去,在目标Activity中展示传递过来的文本。

1. 创建当前Activity

在当前Activity的xml布局文件中添加一个EditText和一个Button:

```

android:id="@+id/et_text"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

android:id="@+id/btn_go"

android:text="go"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

```

在当前Activity的java文件中,获取EditText中输入的文本,并创建Intent对象,将文本通过putExtra方法添加到Intent中,最后使用startActivity方法启动目标Activity:

```

public class MainActivity extends AppCompatActivity {

private EditText etText;

private Button btnGo;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

etText = findViewById(R.id.et_text);

btnGo = findViewById(R.id.btn_go);

btnGo.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

String text = etText.getText().toString();

Intent intent = new Intent(MainActivity.this, TargetActivity.class);

intent.putExtra("text", text);

startActivity(intent);

}

});

}

}

```

2. 创建目标Activity

在目标Activity的xml布局文件中添加一个TextView,用于展示传递过来的文本:

```

android:id="@+id/tv_text"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textSize="18sp"

android:textColor="#000"/>

```

在目标Activity的java文件中,获取通过Intent传递过来的文本,展示在TextView中:

```

public class TargetActivity extends AppCompatActivity {

private TextView tvText;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_target);

tvText = findViewById(R.id.tv_text);

Intent intent = getIntent();

String text = intent.getStringExtra("text");

tvText.setText(text);

}

}

```

3. 运行程序

在模拟器或真机上运行程序,在当前Activity中输入文本,点击button按钮后可以跳转到目标Activity,并将文本展示在TextView中。

总结

Android应用程序中,Activity之间的跳转是非常常见的操作,非常具有实用性。本篇文章针对Activity跳转的各种操作方法进行了详细介绍,并提供了一个简单的案例说明,在实际开发中可以根据需要进行相应的操作实现。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(119) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部