2012-08-03 38 views
0

我有两个活动“主”(带有一个按钮)&“第二”,我想当我点击主活动中的按钮时,第二活动应该是推出,但它应该像浏览器一样。意味着浏览器应该在第二项活动启动时打开。在Android中如何使我的活动像浏览器一样行为

我的代码如下:
清单文件,我已经写了

<activity android:name=".Second"> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.BROWSABLE"/> 
     </intent-filter> 
    </activity> 

在Main.java文件我已经写了事件处理这样

Button b = (Button) findViewById(R.id.button1); 

b.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
     // TODO Auto-generated method stub 

     Intent intent = new Intent(Main.this, Second.class); 
     startActivity(intent); 
    } 
}); 

首先,是这可能是我想要的,如果是的话,我会以正确的方式做到吗?真的很抱歉,如果我的问题是愚蠢的,因为我是Android的新手

+0

你解决了你的问题吗? – MAC 2012-08-03 09:25:19

回答

1

当我开始学习关于An​​droid和它的意图,我发现它非常混乱。 但清单中的类别BROWSABLE执行以下操作。

浏览器可以安全地调用目标活动以显示链接引用的数据 - 例如图像或电子邮件。

了解更多关于:http://developer.android.com/guide/components/intents-filters.html

两个其他答案打开标准网页浏览器,并转到指定的地址。如果你想定制的浏览器进行第二活性喜欢这样例如,一个Web视图:

http://www.mkyong.com/android/android-webview-example/

祝你好运!

1

在第二项活动中写下。由于你的第二个活动将会调用它将打开一个浏览器。

你也可以在onClick()中使用它。

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"))); 
0

好像你试图打开浏览器到特定的页面,当按钮被点击主要活性。

如果这是你并不需要第二个活动的情况下,您需要做的仅仅是这样的:

Button b = (Button) findViewById(R.id.button1); 

b.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); 
     startActivity(i); 
    } 
} 
1
public class WebDialog extends Dialog 
{ 

    static final int      BLUE     = 0xFF6D84B4; 
    static final float[]     DIMENSIONS_DIFF_LANDSCAPE = 
                    { 20, 60 }; 
    static final float[]     DIMENSIONS_DIFF_PORTRAIT = 
                    { 40, 60 }; 
    static final FrameLayout.LayoutParams FILL     = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT); 
    static final int      MARGIN     = 4; 
    static final int      PADDING     = 2; 
    static final String     DISPLAY_STRING   = "touch"; 

    private String      mUrl; 
// private DialogListener    mListener; 
    private ProgressDialog    mSpinner; 
    private WebView      mWebView; 
    private LinearLayout     mContent; 
    private TextView      mTitle; 

    public WebDialog(Context context, String url) 
    { 
     super(context); 
     mUrl = url; 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     mSpinner = new ProgressDialog(getContext()); 
     mSpinner.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     mSpinner.setMessage("Loading..."); 

     mContent = new LinearLayout(getContext()); 
     mContent.setOrientation(LinearLayout.VERTICAL); 
     setUpTitle(); 
     setUpWebView(); 
     Display display = getWindow().getWindowManager().getDefaultDisplay(); 
     final float scale = getContext().getResources().getDisplayMetrics().density; 
     int orientation = getContext().getResources().getConfiguration().orientation; 
     float[] dimensions = (orientation == Configuration.ORIENTATION_LANDSCAPE) ? DIMENSIONS_DIFF_LANDSCAPE : DIMENSIONS_DIFF_PORTRAIT; 
     addContentView(mContent, new LinearLayout.LayoutParams(display.getWidth() - ((int) (dimensions[0] * scale + 0.5f)), display.getHeight() - ((int) (dimensions[1] * scale + 0.5f)))); 
    } 

    private void setUpTitle() 
    { 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     Drawable icon = getContext().getResources().getDrawable(R.drawable.ic_launcher); 
     mTitle = new TextView(getContext()); 
     mTitle.setText("Website"); 
     mTitle.setTextColor(Color.WHITE); 
     mTitle.setTypeface(Typeface.DEFAULT_BOLD); 
     mTitle.setBackgroundColor(BLUE); 
     mTitle.setPadding(MARGIN + PADDING, MARGIN, MARGIN, MARGIN); 
//  mTitle.setCompoundDrawablePadding(MARGIN + PADDING); 
//  mTitle.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null); 
     mContent.addView(mTitle); 
    } 

    private void setUpWebView() 
    { 
     mWebView = new WebView(getContext()); 
     mWebView.setVerticalScrollBarEnabled(false); 
     mWebView.setHorizontalScrollBarEnabled(false); 
     mWebView.setWebViewClient(new WebDialog.DialogWebViewClient()); 
     mWebView.getSettings().setJavaScriptEnabled(true); 

     System.out.println(" mURL = "+mUrl); 

     mWebView.loadUrl(mUrl); 
     mWebView.setLayoutParams(FILL); 
     mContent.addView(mWebView); 
    } 

    private class DialogWebViewClient extends WebViewClient 
    { 

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

      return true; 
     } 

     @Override 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) 
     { 
      super.onReceivedError(view, errorCode, description, failingUrl); 
      WebDialog.this.dismiss(); 
     } 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) 
     { 
      super.onPageStarted(view, url, favicon); 
      mSpinner.show(); 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) 
     { 
      super.onPageFinished(view, url); 
      String title = mWebView.getTitle(); 
      if (title != null && title.length() > 0) 
      { 
       mTitle.setText(title); 
      } 
      mSpinner.dismiss(); 
     } 

    } 
} 
相关问题