android - 如何用不同的数据调用相同的 Activity (相同的布局)?

标签 android android-activity android-intent

我是 android 领域的新手。我正在开发餐厅菜单应用程序,我创建了显示餐厅中项目名称的 ListView 。当我在 ListView 中选择任何一个项目时,它将启动另一个 Activity ,它包含显示所选项目详细描述的 TextView 字段。同样,当我选择其他项目时,它应该启动相同的 Activity ,但数据应该是所选项目的数据,如何实现这一点?如果我使用 sqlite 数据库作为数据源。

最佳答案

您需要传递 onItemClick 的值:

Intent intent = new Intent(context, CalledActivity.class);
        intent.putExtra(key, value);
        startActivity(intent);

如果你想从被调用的 Activity 返回一些数据,那么你可以使用 startActivityForResult() 作为:

Intent intent = new Intent(context, CalledActivity.class);
        intent.putExtra(key, value);
        startActivityForResult(intent, requestCode);

在调用的 Activity 中,您可以将数据设置为:

setResult(RESULT_OK, intent);

注意:这里是在intent中设置值,传递给setResult()。

返回调用 Activity 时,您可以通过覆盖获取数据:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == RESULT_OK){
            //Get data from Intent "data" and do your task here....
        }
    }

注意:您可以通过 Intent 传递原始数据类型值,如果您想传递其他类型,则必须像这样使用 Bundle。

Bundle data = new Bundle();
        data.putIntArray(key, value);

//same way you can set other values.......
//Now set this Bundle value to Intent as you do for primitive type....

Intent intent = new Intent(context, CalledActivity.class);
        intent.putExtra(data);
        startActivity(intent);

在 Activity 中接收数据:

//For primitive values:
DataType var_name = getIntent().getExtras().get(key);

//For Bundle values:
Bundle var_name = getIntent().getExtras().getBundle(key);

关于android - 如何用不同的数据调用相同的 Activity (相同的布局)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7305113/

相关文章:

Java-在 Android Studio 中将数据从 Activity 发送到选项卡 fragment

android - 通过 url intent 过滤器启动 Android 设置应用程序

java - Android:在扩展 View 的类中的 startActivity()

php - 阅读 JSON/PHP/Android 中的段落

安卓工作室 2.2 : I keep seeing "GPU tools not installed, install now"

android - 应用程序如何检测状态栏颜色(Android 5.0 Lollipop)?

java - 如何用策略实现单例?

android - onCreate 从后台返回时调用

android - onBackPressed 杀死 Activity 中的处理程序 - Android

java - 当得到错误: ResultInfo{who=null, request=0, result=-1, data=null}时,who=null是什么?