簡體   English   中英

如何像某些自定義對話框一樣將瀏覽器作為前台活動打開?

[英]How to open browser as a foreground activity like some custom dialog?

我正在使用下面的代碼,其中ListView的onClick在瀏覽器中打開一個鏈接。 有什么方法可以在一些吸引人的小型前台活動(例如自定義對話框或彈出窗口)中打開同一瀏覽器? 有人嘗試過嗎?

public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setData(Uri.parse(listItems.get(pos).getLink()));

    activity.startActivity(i);

}

謝謝,提前

根據Tarun建議編輯代碼:

public class ListListener extends Activity implements OnItemClickListener {

// List item's reference
List<RssItem> listItems;
// Calling activity reference
Activity activity;

public ListListener(List<RssItem> aListItems, Activity anActivity) {
    listItems = aListItems;
    activity  = anActivity;
}

/**
 * Start a browser with url from the rss item.
 */
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
    /*Intent i = new Intent(Intent.ACTION_VIEW);
    i.setData(Uri.parse(listItems.get(pos).getLink()));
    activity.startActivity(i);*/
    AlertDialog.Builder alert = new AlertDialog.Builder(ListListener.this);

    alert.setTitle("Title here");
    WebView wv = new WebView(this);

    wv.loadUrl(listItems.get(pos).getLink()); 

    wv.setWebViewClient(new WebViewClient()
    {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            view.loadUrl(url);

            return true;
        }
    });

    alert.setView(wv);
    alert.setNegativeButton("Close", new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface dialog, int id)
        {
        }
    });
    alert.show();

}

}

錯誤:

07-22 13:18:43.465:E / AndroidRuntime(22759):致命例外:主要07-22 13:18:43.465:E / AndroidRuntime(22759):java.lang.NullPointerException 07-22 13:18:43.465: E / AndroidRuntime(22759):位於android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:139)07-22 13:18:43.465:E / AndroidRuntime(22759):位於android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java :65)07-22 13:18:43.465:E / AndroidRuntime(22759):位於android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:142)07-22 13:18:43.465:E / AndroidRuntime(22759):在android.app.AlertDialog $ Builder。(AlertDialog.java:359)07-22 13:18:43.465:E / AndroidRuntime(22759):在com.itcuties.multicategoryrssreader.listeners.ListListener.onItemClick(ListListener.java:43 )07-22 13:18:43.465:E / AndroidRuntime(22759):在android.widget.AdapterView.performItemClick(AdapterView.java:298)07-22 13:18:43.465:E / AndroidRuntime(22759):在Android .widget.AbsListView.performItemClick(AbsListView.java:1283)07-22 13:18:43.465:E / Android 運行時(22759):在android.widget.AbsListView $ PerformClick.run(AbsListView.java:3074)07-22 13:18:43.465:E / AndroidRuntime(22759):在android.widget.AbsListView $ 1.run(AbsListView。 java:4147)07-22 13:18:43.465:E / AndroidRuntime(22759):位於android.os.Handler.handleCallback(Handler.java:615)07-22 13:18:43.465:E / AndroidRuntime(22759) :位於android.os.Handler.dispatchMessage(Handler.java:92)07-22 13:18:43.465:E / AndroidRuntime(22759):位於android.os.Looper.loop(Looper.java:137)07-22 13:18:43.465:E / AndroidRuntime(22759):位於android.app.ActivityThread.main(ActivityThread.java:4898)07-22 13:18:43.465:E / AndroidRuntime(22759):位於java.lang.reflect .Method.invokeNative(本機方法)07-22 13:18:43.465:E / AndroidRuntime(22759):at java.lang.reflect.Method.invoke(Method.java:511)07-22 13:18:43.465: E / AndroidRuntime(22759):位於com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1008)07-22 13:18:43.465:E / AndroidRuntime(22759):位於com.android.internal .os.ZygoteInit.main(Z ygoteInit.java:775)07-22 13:18:43.465:E / AndroidRuntime(22759):at dalvik.system.NativeStart.main(本機方法)

AlertDialog.Builder alert = new AlertDialog.Builder(this);

    alert.setTitle("Title here");
    WebView wv = new WebView(this);

    wv.loadUrl("http:\\www.google.com");

    wv.setWebViewClient(new WebViewClient()
    {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            view.loadUrl(url);

            return true;
        }
    });

    alert.setView(wv);
    alert.setNegativeButton("Close", new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface dialog, int id)
        {
        }
    });
    alert.show();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM