2010-08-28 97 views
0

我一直在尝试添加一个WebView在TabView中的其中一个选项卡,但它不工作。 当我去其他标签我只是TextViews和他们工作正常,但只要我点击与网站在它的选项卡,错误意外关闭。 这里是我的search_result.java具有TabView的现在WebView内TabView失败

package supa.mack.doppler; 

import android.app.Activity; 
import android.app.TabActivity; 
import android.content.Intent; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TabHost; 

public class search_result extends TabActivity { 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.search_result); 

    TabHost mTabHost; 
    mTabHost = getTabHost(); 

    mTabHost.addTab(mTabHost.newTabSpec("Results").setIndicator("Results").setContent(R.id.textview1)); 
    mTabHost.addTab(mTabHost.newTabSpec("Location").setIndicator("Location").setContent(R.id.textview2)); 
    mTabHost.addTab(mTabHost.newTabSpec("Facebook") 
     .setIndicator("Facebook") 
     .setContent(new Intent(this, BioActivity.class))); 

    mTabHost.setCurrentTab(0); 


Button searchButton=(Button) findViewById(R.id.return_button); 
    searchButton.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v) { 
    Intent intent=new Intent(
    search_result.this, 
    doppler_test.class 
    ); 

    startActivity(intent); 
    } 
}); 
} 
} 

这里就是TabView的定义

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"/> 
     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" android:layout_gravity="center_horizontal"> 
     <TableLayout 
    android:id="@+id/TableLayout01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:layout_gravity="center_horizontal" android:gravity="center_horizontal"> 

     <Button 
     android:id="@+id/return_button" 
     android:layout_height="wrap_content" 
     android:text="Return" 
     android:layout_width="fill_parent"/> 

      <TableRow> 
      <TextView 
       android:id="@+id/textview1" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:text="Here is the list of people in your location" /> 
      <TextView 
       android:id="@+id/textview2" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:text="Here you will see your exact location to bookmark it" /> 
      <TextView 
       android:id="@+id/textview3" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:text="Reference Facebook To Check The One You Seek" /> 
     </TableRow> 
     </TableLayout> 
    </FrameLayout> 
    </LinearLayout> 
</TabHost> 

这里是BioActivity.java在web视图定义的search_result.xml

package supa.mack.doppler; 

import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 

public class BioActivity extends Activity { 
WebView browser; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.web_view); 

    browser = (WebView) findViewById(R.id.webview); 
    browser.getSettings().setJavaScriptEnabled(true); 
    browser.loadUrl("http://www.google.com"); 
} 
} 

最后这是放置webView的web_view.xml

<?xml version="1.0" encoding="utf-8"?> 
<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/webview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
/> 

O和差点忘了加我的清单....

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="supa.mack.doppler" 
     android:versionCode="1" 
     android:versionName="1.0"> 
     <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"> 
     <activity android:name=".doppler_test" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    <activity android:name=".search_result"> 
    <activity android:name=".search_result" android:label="@string/app_name" 
     android:theme="@android:style/Theme.NoTitleBar"/> 
     <activity android:name=".BioActivity" android:label="@string/app_name" 
     android:theme="@android:style/Theme.NoTitleBar"/> 
    </activity> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
    <uses-permission android:name="android.permission.BLUETOOTH" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    </application> 
     <uses-sdk android:minSdkVersion="7" /> 


</manifest> 

谢谢你看在我的代码,它是真正破坏不能够得到这个工作,我的一天......

回答

0

我有一种感觉,你的web_view.xml格式不正确,需要一个线性布局或相关布局。我几乎一个完全相同的程序工作,我web_view.xml文件看起来是这样的:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mainlayout" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 
<WebView android:id="@+id/webview" 
android:layout_height="fill_parent" 
android:layout_width="fill_parent"/> 
</RelativeLayout> 

您也可以尝试创建通过代码的新web视图,而不是与XML布局打扰。如果你打算拥有一个webview并且不需要重用该文件,那么你可以使用它。

编辑:我刚刚测试了你的XML方法。这似乎是有效的,工作很好。但我注意到,调用BioActivity的方法可能不正确。例如,我使用这样的东西:

intent = new Intent().setClass(this, BioActivity.class); 
mTabHost.addTab(mTabHost.newTabSpec("Facebook") 
     .setIndicator("Facebook") 
     .setContent(intent)); 

试试看,让我们知道它是如何工作的。我也相信你的按钮侦听器应该在onCreate方法之外。

+0

好吧,我加你的意图上面代码中,仍然有同样的错误...... 至于清单又该它看起来像,因为我没有收到来自它的帮助任何错误.. 感谢至今 – user433047 2010-08-29 12:59:48

+0

这似乎是一个明显的错误,如果我所有的代码与你一起工作...... 只是似乎无法弄清楚如何重新输入它没有得到应用程序错误或语法错误.... – user433047 2010-08-29 13:12:30

+0

您的清单现在更正确。 “使用”应该位于应用程序标记之外,并且您还有两个重复的活动。 – 2010-08-30 05:59:57

0

您的清单也可能不正确。您的应用程序标记未关闭,您有重复的活动,并且每个活动的标签和主题不是必需的。为了使网络正常工作,您还需要添加此权限:

<uses-permission android:name="android.permission.INTERNET" /> 

缺乏权限不会ofcourse导致程序崩溃,它只是不会停,以确保你已经沿着implimented清理和制止你的舱单。