【问题标题】:How to pass data between activity through Html hyperlink in Android TextView?如何通过 Android TextView 中的 Html 超链接在活动之间传递数据?
【发布时间】:2013-04-24 10:45:23
【问题描述】:

我有一个超链接的TextView。像这样的代码

textPaymentMethod.setText(
Html.fromHtml("<b><a href=\"shippinginfo-activity://shippinginfo\">Add Payment Method</a></b>"));
tvPaymentMethod.setMovementMethod(LinkMovementMethod.getInstance());

当用户Click 使用AddPayment 方法时,它将转到另一个Activity,例如ActivityX。但我的问题是,我想将当前Activity 中的一些数据传递给ActivityX。 任何建议将不胜感激。

【问题讨论】:

  • 您可以使用对象传递数据。否则,您可以使用 Put Extra。参考这个问题:stackoverflow.com/questions/4967740/…
  • 你能告诉我如何使用 PutExtra 传递数据吗?
  • 检查下面的 Kameswaris 答案。它处理 PutExtra。
  • 对不起,我不需要这个。实际上,这并不是完美的解决方案。谢谢。
  • 那你到底需要什么?

标签: android android-intent


【解决方案1】:

你看到这个Question的答案了吗?查看 cmets,其中详细介绍了通过使用字符串将数据传递给另一个活动的方法。

【讨论】:

  • 虽然用答案而不是答案的链接来流行这个会很好。不过,此链接确实对我有所帮助 +1
【解决方案2】:

为了从一个活动移动到另一个活动,请编写以下代码

//move to next activity
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
//pass your data here
intent.putExtra("data", <your data value>);
//start Activity
startIntent(intent);
In Activity3, to get your edit text value do the following.

//get your data value here which is passed in FirstActivity
String data = getIntent().getStringExtra("data");

变量“数据”是您要查找的最终输出。

【讨论】:

    【解决方案3】:

    将此添加到您当前的活动中

    Intent activity= new Intent(Activity.this, ActivityX.class);
    
    activity.putExtra("key", <value>);
    
    startIntent(activity);
    

    ActivityX:在 OnCreate() 中

    Intent value = getIntent();
    String str_value= (String) usrid.getSerializableExtra("key");
    

    【讨论】:

      【解决方案4】:

      所以我在菲尔的帮助下想通了,我在这里阅读了这个答案:handle textview link click in my android app

      将以下意图过滤器添加到您想要超链接到的清单活动中,当然用您自己的方案替换该方案:

      <intent-filter>
          <category android:name="android.intent.category.DEFAULT" />
          <action android:name="android.intent.action.VIEW" />
          <data android:scheme="com.package.name" />  
      </intent-filter>
      

      现在,使用该方案创建超链接并将其放入您的字符串文件中。我的链接与意图过滤器具有相同的 android:scheme,并且附加了指向 Internet 上站点的实际外部链接。在我的情况下,我想点击链接,它必须打开另一个活动,另一个活动有一个 webview 可以显示网页。这可以防止用户在手机上看到我将他们定向到的网页的网址。

      <string name="signing_in">&lt;a href=&quot;com.package.name://http://your_real_external_link_goes_here&quot;&gt;Privacy Policy&lt;/a&gt;</string>
      

      在我的 webview 活动中,我说:

          Uri data = getIntent().getData();
          if (data != null) {
              url = data.toString().substring(19 , data.toString().length());
              Log.e("url", url);
          }
      

      我们将下面的部分去掉:com.package.name://,总共有 19 个字符,剩下的部分将是我的 url,然后我可以使用它来加载我的网页而不显示 url。

      【讨论】:

        猜你喜欢
        • 2021-03-08
        • 1970-01-01
        • 2021-09-08
        • 1970-01-01
        • 2011-05-18
        • 1970-01-01
        • 1970-01-01
        • 2015-03-05
        • 1970-01-01
        相关资源
        最近更新 更多