i’m trying to make a webview and listview in a same activity.
here’s my layout file :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@android:color/white" >
<com.markupartist.android.widget.ActionBar
android:id="@+id/actionbar"
style="@style/ActionBar" />
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="210dp" />
<ListView
android:id="@+id/listtest"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
<TextView
android:id="@+id/tv_test2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp"/>
and here’s my row layout :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical" >
<com.markupartist.android.widget.ActionBar
android:id="@+id/actionbar"
style="@style/ActionBar" />
<TextView
android:id="@+id/tv_test"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
and here’s my activity :
public class Tab_Bike_Information_Activity extends Activity {
WebView mWebView;
TextView tv;
private ListView mainListView;
private ArrayAdapter<String> listAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tessss);
final ActionBar actionBar = (ActionBar) findViewById(R.id.actionbar);
actionBar.setTitle(getString(R.string.app_name));
int index = getIntent().getIntExtra("text", 0);
mWebView = (WebView) findViewById(R.id.webView1);
String temp = "<html><body>" + "<p align=\"justify\">"
+ getString(R.string.xc_info + index) + "</p> "
+ "</body></html>";
mWebView.loadData(temp, "text/html", "utf-8");
mainListView = (ListView) findViewById(android.R.id.list );
// Create and populate a List of planet names.
String[] planets = new String[] { "Mercury", "Venus", "Earth", "Mars",
"Jupiter", "Saturn", "Uranus", "Neptune"};
ArrayList<String> planetList = new ArrayList<String>();
planetList.addAll( Arrays.asList(planets) );
// Create ArrayAdapter using the planet list.
listAdapter = new ArrayAdapter<String>(this, R.layout.tessss_row, planetList);
// Add more planets. If you passed a String[] instead of a List<String>
// into the ArrayAdapter constructor, you must not add more items.
// Otherwise an exception will occur.
listAdapter.add( "Ceres" );
listAdapter.add( "Pluto" );
listAdapter.add( "Haumea" );
listAdapter.add( "Makemake" );
listAdapter.add( "Eris" );
tv = (TextView) findViewById(R.id.tv_test);
}
and here’s the logcat :
09-19 20:04:04.659: E/AndroidRuntime(13951): FATAL EXCEPTION: main
09-19 20:04:04.659: E/AndroidRuntime(13951): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wilis.hellotabwidget/com.wilis.hellotabwidget.Tab_Bike_Information_Activity}: java.lang.NullPointerException
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.os.Handler.dispatchMessage(Handler.java:99)
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.os.Looper.loop(Looper.java:130)
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread.main(ActivityThread.java:3687)
09-19 20:04:04.659: E/AndroidRuntime(13951): at java.lang.reflect.Method.invokeNative(Native Method)
09-19 20:04:04.659: E/AndroidRuntime(13951): at java.lang.reflect.Method.invoke(Method.java:507)
09-19 20:04:04.659: E/AndroidRuntime(13951): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
09-19 20:04:04.659: E/AndroidRuntime(13951): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
09-19 20:04:04.659: E/AndroidRuntime(13951): at dalvik.system.NativeStart.main(Native Method)
09-19 20:04:04.659: E/AndroidRuntime(13951): Caused by: java.lang.NullPointerException
09-19 20:04:04.659: E/AndroidRuntime(13951): at com.wilis.hellotabwidget.Tab_Bike_Information_Activity.onCreate(Tab_Bike_Information_Activity.java:75)
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
09-19 20:04:04.659: E/AndroidRuntime(13951): ... 11 more
can anybody help with this? thanks
I see two Problems: First the ID of your listview.
Change
to
maybe you need to delete the import for android.R.* to make eclipse recognize the change.
Second, in your adapter there is now TextView specified.
Change
to
to let the ArrayAdapter know in which textView it should write the content of planetList.