如何在Android Studio中使弹出窗口中的超链接可以点击?

0 人关注

我有一个安卓应用程序,可以打开一些弹出窗口。但是,弹出窗口中的超链接是不能点击的。我尝试了一些方法,比如 在 activity_main.xml 中

    <TextView
`.....`
`android:autoLink="web"`
`android:autoLink="all"`

我认为问题是由于我的文本是在弹出窗口中。 以下是代码。

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView dataList = findViewById(R.id.dataList);
        dataList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                BlackBoardEntry entry = (BlackBoardEntry) parent.getItemAtPosition(position);
                String content = entry.getContent();
                LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View popupView = inflater.inflate(R.layout.content_popup, null, false);
                ((TextView) popupView.findViewById(R.id.contentView)).setText(content);
                PopupWindow popup = new PopupWindow(popupView, 500, 1000, true);
                popup.showAtLocation(parent, Gravity.CENTER, 0, 0);
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    List<BlackBoardEntry> entries = BlackBoardClient.getBlackBoardEntries();
                    BlackBoardAdapter adapter = new BlackBoardAdapter(entries, getApplicationContext());
                    dataList.post(new Runnable() {
                        @Override
                        public void run() {
                            dataList.setAdapter(adapter);
                } catch (IOException e) {
                    e.printStackTrace();
        }).start();

it looks like this:

java
android
android-studio
popupwindow
Irina
Irina
发布于 2021-12-02
1 个回答
R Millaci
R Millaci
发布于 2021-12-02
已采纳
0 人赞同
   public static void createClickableSpanText(ClickableSpan listener, TextView textView, String message, int startIndex, int endIndex) {
        SpannableString spannableString = new SpannableString(message);
        spannableString.setSpan(listener, startIndex, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);