添加 link 到警报对话框文本 android
add link to alertdialog text android
我正在创建一个警报对话框,我在消息中放置了一个字符串。该字符串带有一些我希望使它们成为 link 的文本,因此当它们显示在对话框中时,用户可以单击它们并转到其他视图。让我向您展示我想要的示例:
public class Activity extends FragmentActivity{
(...)
public void myMethod(){
String message = "Some links: link1, link2, link3";
AlertDialog.Builder builder = new AlertDialog.Builder(this)
builder.setTitle("This is a title");
builder.setMessage(message);
builder.setCancelable(true);
builder.setOnCancelListener(onCancelListener);
builder.create().show();
}
}
我想对 link1、link2 和 link3 做一些事情,所以当它们在对话框中显示时,它们显示为 links。然后,当用户点击 link1 时,会显示一个新的 activity;当点击 link2 时,会显示另一个视图,与 link3.
相同
我想要一个 onlinkclicklistener 或类似的东西,这样我就可以在用户点击 link.
时进行捕获
关于如何做到这一点的任何想法?
我希望你能明白我想要什么:)
public void myMethod(){
String link1 = "<a href=\"http://www.google.com\">http://www.google.com</a>";
String message = "Some links: "+link1+"link1, link2, link3";
Spanned myMessage = Html.fromHtml(message);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("This is a title");
builder.setMessage(myMessage);
builder.setCancelable(true);
AlertDialog alertDialog = builder.create();
alertDialog.show();
TextView msgTxt = (TextView) alertDialog.findViewById(android.R.id.message);
msgTxt.setMovementMethod(LinkMovementMethod.getInstance());
}
正如我在评论中所说,您应该使用自定义对话框。
因此,为自定义对话框的布局创建一个新的 xml 文件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button
android:id="@+id/button1"
android:text="firstButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/dialogButtonOK"
android:layout_width="100px"
android:layout_height="wrap_content"
android:text=" Ok "
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
/>
<Button
android:id="@+id/button2"
android:text="SecondButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
以上就是自定义对话框的布局。
现在在您使用 AlertDialog.Builder
的方法中使用下面的代码。
public void myMethod(){
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custome);
dialog.setTitle("Title...");
// set the custom dialog components - text, image and button
Button button1 = (Button) dialog.findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getBaseContext(),MyActivity2.class);
startActivity(intent);
}
});
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
}
因此,这将显示您的自定义对话框,其布局在上面指定 xml,当您单击按钮 1 时,它将在新视图中打开 MyActivity2。
有关更多详细信息,您应该查看 here
我正在创建一个警报对话框,我在消息中放置了一个字符串。该字符串带有一些我希望使它们成为 link 的文本,因此当它们显示在对话框中时,用户可以单击它们并转到其他视图。让我向您展示我想要的示例:
public class Activity extends FragmentActivity{
(...)
public void myMethod(){
String message = "Some links: link1, link2, link3";
AlertDialog.Builder builder = new AlertDialog.Builder(this)
builder.setTitle("This is a title");
builder.setMessage(message);
builder.setCancelable(true);
builder.setOnCancelListener(onCancelListener);
builder.create().show();
}
}
我想对 link1、link2 和 link3 做一些事情,所以当它们在对话框中显示时,它们显示为 links。然后,当用户点击 link1 时,会显示一个新的 activity;当点击 link2 时,会显示另一个视图,与 link3.
相同我想要一个 onlinkclicklistener 或类似的东西,这样我就可以在用户点击 link.
时进行捕获关于如何做到这一点的任何想法? 我希望你能明白我想要什么:)
public void myMethod(){
String link1 = "<a href=\"http://www.google.com\">http://www.google.com</a>";
String message = "Some links: "+link1+"link1, link2, link3";
Spanned myMessage = Html.fromHtml(message);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("This is a title");
builder.setMessage(myMessage);
builder.setCancelable(true);
AlertDialog alertDialog = builder.create();
alertDialog.show();
TextView msgTxt = (TextView) alertDialog.findViewById(android.R.id.message);
msgTxt.setMovementMethod(LinkMovementMethod.getInstance());
}
正如我在评论中所说,您应该使用自定义对话框。
因此,为自定义对话框的布局创建一个新的 xml 文件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button
android:id="@+id/button1"
android:text="firstButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/dialogButtonOK"
android:layout_width="100px"
android:layout_height="wrap_content"
android:text=" Ok "
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
/>
<Button
android:id="@+id/button2"
android:text="SecondButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
以上就是自定义对话框的布局。
现在在您使用 AlertDialog.Builder
的方法中使用下面的代码。
public void myMethod(){
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custome);
dialog.setTitle("Title...");
// set the custom dialog components - text, image and button
Button button1 = (Button) dialog.findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getBaseContext(),MyActivity2.class);
startActivity(intent);
}
});
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
}
因此,这将显示您的自定义对话框,其布局在上面指定 xml,当您单击按钮 1 时,它将在新视图中打开 MyActivity2。
有关更多详细信息,您应该查看 here