gpt4 book ai didi

java - 插入链接以在字符串资源中发送 Intent

转载 作者:行者123 更新时间:2023-11-29 23:20:37 25 4
gpt4 key购买 nike

我想在 Android 应用程序的字符串资源项中添加一个链接。

我看到可以插入这样的链接

<string name="my_link"><a href="http://somesite.com/">Click me!</a></string>

但我不想启动网站,而是想发送一个 Intent 将用户带到他的手机设置。

是否可以有这样的链接?

最佳答案

您可以使用 DeepLinks处理特定的 URL。为此,您应该引入一个 Activity 作为特定模式 URL 的处理程序。因此,当用户点击特定模式链接时,您的 Activity 可以被选为其处理程序,然后您可以打开手机设置。下面是这个想法的实现:

list .xml

<activity android:name=".MyTransientActivity">

<intent-filter>

<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<!-- Accepts URIs that begin with "http://somesite.com" -->
<data android:host="somesite.com" />
<data android:scheme="http" />

</intent-filter>

</activity>

MyTransientActivity.java

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

public class MyTransientActivity extends AppCompatActivity {

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent() != null) {
String action = getIntent().getAction();
if (action != null && action.equals(Intent.ACTION_VIEW)) {
Intent settingsIntent = new Intent(android.provider.Settings.ACTION_SETTINGS);
settingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(settingsIntent);
}
}
finish();
}

}

测试:

TextView textview = findViewById(R.id.textView);
textview.setText(getString(R.string.my_link));
Linkify.addLinks(textview, Linkify.WEB_URLS);
textview.setMovementMethod(LinkMovementMethod.getInstance());

关于java - 插入链接以在字符串资源中发送 Intent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54371907/

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