【问题标题】:Using intent between activities, in reverse - Android在活动之间反向使用意图 - Android
【发布时间】:2015-08-25 18:17:48
【问题描述】:

我对 android 编程(以及一般的 java)非常陌生,并且遇到了一个让我难过的问题。我正在构建一个访问已经构建的网站 www.shodan.io 的基本应用程序(用于练习)。据我所知,这个特定网站还没有安卓应用程序,我很喜欢它的研究。 所以我有一个有 4 个活动的应用程序,所有这些活动都加载得很漂亮(在堆栈论坛的大力帮助下)。它们是:LoadingPage、MainActivity、SearchPage 和 ExploitSearch。在我的 MainActivity 上,我有一个 webview 来显示不同的页面、切换按钮、徽标等。我的搜索和利用按钮每个都可以毫无问题地加载相应的页面。现在我的问题/问题。

我想让搜索和利用活动接受输入(目前这是它们的唯一目的),将所述输入保存到一个字符串中,然后可以从我的 MainActivty 访问该字符串并用作我的 url 的搜索查询。

到目前为止,我的搜索已经出现了许多论坛,告诉如何从活动 1 中获取数据并让活动 2 使用“intent”读取数据。但是,我似乎找不到任何资源来做相反的事情,或者将其保存为字符串(可能在临时文件中,最好是以后可以调用的东西......有点像“输入”+\n 所以它不是覆盖)

感谢您的宝贵时间 (ps。让我知道所需的任何代码部分,因为我不想用 4 个活动及其各自的布局文件填充这个线程。)

【问题讨论】:

  • 以同样的方式,您从从第二个活动导航到第一个活动的第二个意图中获取值。使用不同的intent

标签: java android android-intent input android-studio


【解决方案1】:

将价值放在意图中

Intent i = new Intent(SecondScreen.this, FirstScreen.class);   
i.putExtra("STRING_I_NEED", strName);

然后,检索值:

 Bundle extras = getIntent().getExtras();
    if(extras == null) {
        newString= null;
    } else {
        newString= extras.getString("STRING_I_NEED");
    }

【讨论】:

    【解决方案2】:

    来源:Getting a Result from an Activity

    来自 Activity1:

    public static final String RESULT_REQUEST = 1;
    

    当你要启动Activity2时:

    Intent intent = new Intent(this, Activity2.class);
    startActivityForResult(intent, RESULT_REQUEST);
    

    Activity2 结束时会调用它:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // Check which request we're responding to
        if (requestCode == RESULT_REQUEST) {
        // Make sure the request was successful
        if (resultCode == RESULT_OK) {
            String result = data.getStringExtra("result");
        }
        }
    }
    

    还有 Activity2,当你完成并想要将字符串发回时:

        Intent returnIntent = new Intent();
        returnIntent.putExtra("result","some string");
        setResult(RESULT_OK,returnIntent);
        finish();
    

    我们已经使用 RESULT_REQUEST 来唯一标识我们自己的 REQUEST,您确实需要检查 requestCode 是否与您开始第二个活动的那个相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      相关资源
      最近更新 更多