我还没有为此编写任何代码,但我一直在研究如何在自定义Web浏览器中实现书签。根据我的阅读,我相信要走的路是向用户显示一个对话框(我看到this article如何从对话框中返回值),我认为它包含了书签的ListView。老实说,我坚持一些非常简单的事情 - 如何向用户展示书签并选择一个。
所以,我的问题在哪里:
感谢。
答案 0 :(得分:3)
执行此操作(3.0之前版本)的经典方法是使用您使用当前活动管理的简单对话框。最简单的方法是使用AlertDialogBuilder构建对话框,请参阅中间的here,“添加列表”部分。通过这种方式,您可以获得带有列表的Dialog,用户可以从该列表中选择一个条目。
现在,你应该使用DialogFragments和(不是这样的)新的Fragment框架。您可以使用官方兼容性库使片段适用于较旧的Android版本。在DialogFragment中,如果覆盖onCreateView(...)回调,可以显示所需的任何UI布局,或者可以使用“onCreateDialog(...)”回调定义外观和行为(可以使用AlertDialogBuilder这里也)。请参阅链接以获取示例。
基于DialogFragment的解决方案更加独立,您可以从应用程序的任何位置轻松调用/显示它。
是的,我确实认为在这种情况下,基于列表的单选对话可以被视为“最佳实践”。但是,基于DialogFragment的解决方案的另一个优点是,您不必以Dialog风格显示它,您也可以将它作为标准片段嵌入到Activity的布局中,如果这是您想要的。
答案 1 :(得分:3)
最好是显示带有列表的对话框,用户选择后导航到浏览器或webview。
您可以使用以下代码向user ::
显示一个对话框String[] yourarraylist = new String[]{"A","B","C","D","E","F","G"};
AlertDialog.Builder builder = new AlertDialog.Builder(YourActivity.this);
builder.setTitle("title");
builder.setSingleChoiceItems(yourarraylist, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), yourarraylist[item], Toast.LENGTH_SHORT).show();
//launch web browser or webview
alert.dismiss();
}
});
alert = builder.create();
alert.show();
您可以按以下方式启动网络浏览器::
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(browserIntent);
另外,要在webview中打开网址,您可以通过此LINK
推荐我的博客答案 2 :(得分:2)
我个人会使用其他活动来显示书签而不是使用对话框。用户可以保存大量书签,并且我认为这不是最好的对话方式。
我会制作另一个扩展ListView的活动,并在列表上显示书签,甚至更好地使用书签的缩略图。然后通过单击书签将返回主活动,使用所选书签刷新浏览器。
除非你想创建一个longpressclick或上下文菜单来显示删除/编辑/ ..书签的对话框,否则不需要对话框。
alertdialog.builder是构建对话框的最快捷,最简单的方法。作为使用alertdialog.builder构建对话框的另一个提示。构建器有一个setview,可以为对话框提供任何视图,该视图基本上可以是一个linearLayout,其中已经丢失了更多视图,创建了一个复杂的对话框视图。
final AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setTitle(getResources().getString(R.string.dialog_title));
ad.setView(dialogLayout);