繁体   English   中英

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

[英]How can I make hyperlinks in popup windows clickable in Android Studio?

我有一个 Android 应用程序,它会打开一些弹出窗口 window。 但弹出 window 中的超链接不可点击。 我尝试了一些方法,例如:在activity_main.xml

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

我认为问题在于我的文本在弹出窗口 window 中。 这是代码:

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();
    }
}

它看起来像这样:
单击某个主题时打开的弹出窗口

   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);
        textView.setText(spannableString);
        textView.setMovementMethod(LinkMovementMethod.getInstance());
    }

您可以执行上述操作来为 startIndex 和 endIndex 之间的文本设置“可点击范围”。 这应该允许您单击该特定文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM