我正在构建这个应用程序,我无法使其工作。这是代码,如果您发现问题,请发布解决方案。
这是主要活动
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
答案 0 :(得分: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 :(得分:2)
试试这个:
Intent mainIntent = new Intent(MainList.this, Top20Questions.class);
startActivity(mainIntent);
答案 2 :(得分:1)
问题在于说明顺序:
setContentView(R.layout.top_20_questions);
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("...");
您必须先设置内容视图,然后查找具有给定ID的视图。
答案 3 :(得分: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");
}
答案 4 :(得分:1)
在尝试查找任何视图之前,您需要调用setContentView(..)。所以把你的setContentView(..)放在你的第二个活动中的super.onCreate(..)之后,它应该可以正常工作。
答案 5 :(得分:1)
您忘记了Top20Questions
课程中的以下一行:
setContentView(R.layout.your_layout);
答案 6 :(得分:1)
首先使用setContentView设置内容视图,然后尝试使用其中的ID。然后只有上面的代码才能工作
答案 7 :(得分:1)
你需要setContentView(R.layout.top_20_questions);