2013-03-07 134 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