2013-03-07 135 views
-6

喜功能startActivity拋出一個空指針異常 這是我的課:安卓startActivity空指針異常

public class DetailActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_detail); 

    } 

    public void showHtml(String prod){ 

     Intent myIntent = new Intent(getBaseContext(), DetailActivity.class); 
     startActivity(myIntent); 


    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     //getMenuInflater().inflate(R.menu.activity_main, menu); 
     return false; 
    } 
} 

,這是我的清單

<?xml version="1.0" encoding="utf-8"?> 

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.xxxx" 
    android:versionCode="1" 
    android:versionName="1.0" > 
    <uses-permission android:name="android.permission.CAMERA"/> 
    <uses-permission android:name="android.permission.INTERNET" /> 

    <uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="16" /> 

    <application android:theme="@android:style/Theme.NoTitleBar" android:allowBackup="false"> 
     <activity 
      android:name="com.example.xxxx.MainActivity" 
      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="com.example.xxxx.fragments.frag1.BarcodeInsertActivity" /> 
     <activity android:name="com.example.xxxx.fragments.frag2.ShopBasketActivity" /> 
     <activity android:name="com.example.xxxx.fragments.frag3.CheckoutActivity" /> 
     <activity android:name="com.example.xxxx.fragments.frag4.DetailActivity" /> 
     <activity 
      android:name="com.google.zxing.client.android.CaptureActivity" 
      android:configChanges="orientation|keyboardHidden" 
      android:screenOrientation="landscape" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
      android:label="ZXing" 
      android:windowSoftInputMode="stateAlwaysHidden" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
      <intent-filter> 
       <action android:name="com.google.zxing.client.android.SCAN" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 



    </application> 

</manifest> 

這是我嘗試執行功能

DetailActivity gg= new DetailActivity(); 

gg.showHtml("some html code <div class='someclass'>asdas</div> and other html tags"); 

會很好,如果有人可以幫我試一試很多事情沒有工作:)

+1

添加您的堆棧跟蹤 – BobTheBuilder 2013-03-07 09:17:20

+0

不要創建活動DetailActivity GG =新DetailActivity對象(); – Pragnani 2013-03-07 09:19:07

+0

從哪裏做這個... DetailActivity gg = new DetailActivity(); – 2013-03-07 09:19:10

回答

4

DetailActivity就是這樣,一個活動。您不能像訪問對象一樣訪問其中的方法。這樣做的唯一方法是使該方法爲靜態,並執行D etailActivity.showHtml(),但建議使用而不是

另一個問題是您沒有正確創建該活動。你需要啓動它,像這樣的意圖:

Intent newIntent = new Intent(this, DetailActivity.class); 
startActivity(newIntent); 

那麼應該訪問方法在該活動中,或通過在束傳遞變量,像這樣:

Bundle bundle = new Bundle(); 
bundle.putString("webAdd", string); 
newIntent.putExtras(bundle); 

然後,您可以通過執行以下操作在DetailActivity中訪問:

Bundle bundle = this.getIntent().getExtras(); 
String newString = bundle.getString("webAdd"); 

我建議閱讀一些有關Activies如何工作的教程。

0

在Android中,你不需要寫

DetailActivity gg= new DetailActivity(); 

你已經在他們寫活動,你不需要這個了。
你也需要把這個活動到您的清單xml文件

DetailActivity