gpt4 book ai didi

android - 如何从在我的应用程序中打开 Activity 的网址检索变量 "?var=value"?

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:12 24 4
gpt4 key购买 nike

我遵循了我找到的例子 here获取 Web 链接以打开我的应用程序的一个 Activity 。我让它工作了,但现在我需要让它检索 url 具有的变量值对。

当我点击这个 url http://www.tapabook.com/tapa/?tapa=578它打开了正确的 Activity ,但 getPathSegments() 仅检索 1 个段,即“tapa”(而不是“tapa=578”)。有没有办法找回整对?

这是我的 list ,以防出现问题阻止我想要的

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.alberovalley.tappabook"
android:versionCode="1"
android:versionName="1.0" android:installLocation="auto">

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET"/>

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Sherlock.Light.DarkActionBar"
android:name="com.alberovalley.tappabook.Tappabook">

<activity
android:name="com.alberovalley.tappabook.actividad.LoginA"
android:configChanges="orientation"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.alberovalley.tappabook.actividad.MenuFA"
android:label="@string/app_name">
</activity>
<activity
android:name="com.alberovalley.tappabook.actividad.ListaTapasFA"
android:label="@string/app_name" >
</activity>
<activity
android:name="com.alberovalley.tappabook.actividad.DetalleTapaFA"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="tapabook.com"
android:pathPrefix="/tapa/"
android:scheme="http" />
<data
android:host="www.tapabook.com"
android:pathPrefix="/tapa/"
android:scheme="http" />
</intent-filter>
</activity>

</application>

</manifest>

这是我的 Activity 中的代码,我在其中检查它是否从 Intent.ACTION_VIEW 调用,在这种情况下,检索数据。

   Intent i = getIntent();
final String action = i.getAction();
Log.d(CData.LOGTAG, "acción del intent " + action);
if (Intent.ACTION_VIEW.equals(action)) {
final List<String> segments = i.getData().getPathSegments();
Log.d(CData.LOGTAG, "Contenido nº segmentos URL interceptada " + segments.size());
if (segments.size() > 0) {
Log.d(CData.LOGTAG, "Contenido de la URL interceptada [" + segments.get(0) + "]");
idTapa = Long.parseLong( segments.get(0) );
}
}else{
idTapa = i.getExtras().getLong(TapaDao.ID, -1);
Log.d(CData.LOGTAG, "DetalleTapaFA.onCreate idTapa = " + idTapa);
}

如有任何帮助,我们将不胜感激。

最佳答案

getEncodedQuery()将为您提供 Uri 的整个查询部分。来自文档:

Gets the encoded query component from this URI. The query comes after the query separator ('?') and before the fragment separator ('#'). This method would return "q=android" for "http://www.google.com/search?q=android".

使用它代替 getPathSegments()

关于android - 如何从在我的应用程序中打开 Activity 的网址检索变量 "?var=value"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14520210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com