2012-02-10 52 views
-2

我正在構建這個應用程序,我不能讓它工作。這裏是代碼,如果您發現問題,請發佈解決方案。意圖不工作,崩潰應用程序

這是主要活動

package in.isuru.caf; 

//imports imported here. removed to simplify the code. 

public class MainList extends ListActivity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    final String[] main_items_array = getResources().getStringArray(R.array.main_items); 
    setListAdapter(new ArrayAdapter<String>(MainList.this, android.R.layout.simple_list_item_1, main_items_array)); 

    final ListView lv = getListView(); 
    lv.setTextFilterEnabled(true); 

    lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      // When clicked, show a toast with the TextView text 
      String selectedFromList = (String) (lv.getItemAtPosition(position)); 
      Toast.makeText(getApplicationContext(), selectedFromList, Toast.LENGTH_SHORT).show(); 

      if(selectedFromList.contains("Top 20 Questions")){ 
       Intent mainIntent = new Intent(MainList.this, in.isuru.caf.Top20Questions.class); 
       startActivity(mainIntent); 
      } 

     } 
     }); 

    } 
} 

這是第二活性。

package in.isuru.caf; 

import in.isuru.caf.R; 
import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 

public class Top20Questions extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 

    WebView myWebView = (WebView) findViewById(R.id.webview); 
    myWebView.loadUrl("http://www.forums.catholic.com/forumdisplay.php?f=4&daysprune=-1&order=desc&sort=views"); 

    setContentView(R.layout.top_20_questions); 
} 

} 

這是AndroidManifest.xml文件。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="in.isuru.caf" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk android:minSdkVersion="8" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:label="@string/app_name" 
     android:name=".MainList" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 

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


</application> 

</manifest> 

我得到這個錯誤。

01-21 12:18:44.231: E/AndroidRuntime(1767): 
java.lang.RuntimeException: Unable to start activity 
ComponentInfo{in.isuru.caf/in.isuru.caf.Top20Questions}: 
java.lang.NullPointerException 
+1

setContentView(R.layout.top_20_questions);錯位了.. – Deva 2012-02-10 14:20:01

回答

2

在嘗試訪問任何資源之前,您必須調用setContentView()方法。

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

    WebView myWebView = (WebView) findViewById(R.id.webview); 
    ... 
    ... 
} 
1

的問題是在指令的順序:

setContentView(R.layout.top_20_questions); 

WebView myWebView = (WebView) findViewById(R.id.webview); 
myWebView.loadUrl("..."); 

你必須先設置內容視圖,然後尋找一個給定id的視圖。

1

你需要修復你的第二個活動。

見下圖:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.top_20_questions); 

    WebView myWebView = (WebView) findViewById(R.id.webview); 
    myWebView.loadUrl("http://www.forums.catholic.com/forumdisplay.php?f=4&daysprune=-1&order=desc&sort=views"); 
} 
1

你需要嘗試找到任何意見之前調用的setContentView(..)。所以把你的setContentView(..)放在第二個activity的super.onCreate(..)後面,它應該可以正常工作。

1

你忘了你的Top20Questions類中的下列行:

​​
2

試試這個:

Intent mainIntent = new Intent(MainList.this, Top20Questions.class); 
startActivity(mainIntent); 
1

第一套使用的setContentView然後嘗試使用ID它的內容視圖。那麼只有上面的代碼將工作

1

您需要setContentView(R.layout.top_20_questions);