Skip to main content

Crash when switching to ListView?



I have a normal LinearLayout for my main.xml , and my second activity is a ListView . I have a button on main.xml that should take me to the ListView . I get an Unexpected Error message and have to force close when I press the button.





Main.xml:







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

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:weightSum="1"

android:background="@drawable/forzabg">



<ImageView

android:id="@+id/mainlogo"

android:layout_width="210dp"

android:layout_height="119dp"

android:layout_gravity="center"

android:layout_weight="0.00"

android:scaleType="fitXY"

android:src="@drawable/forzalogo" >



</ImageView>



<ImageView

android:id="@+id/menuButton1"

android:layout_width="185dp"

android:layout_height="56dp"

android:layout_gravity="center"

android:layout_weight="0.14"

android:src="@drawable/carslist" />



/>



</LinearLayout>







Java for main.xml:







package com.forza;



import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.ImageView;



public class Forza2Activity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);



ImageView carbutton = (ImageView) findViewById(R.id.menuButton1);



carbutton.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {

Intent myIntent = new Intent(view.getContext(), CarList.class);

startActivity(myIntent);

}

});



}

}







carlist.xml (ListView) activity:







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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical">



<ListView

android:id="@+id/mylist"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:entries="@array/Brands" >

</ListView>



</LinearLayout>







Java for ListView activity:







package com.forza;



import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.ImageView;

import android.widget.ListView;





public class CarList extends Activity {







ListView carList = (ListView) findViewById(R.id.mylist);

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.carlist);



ImageView carbutton = (ImageView) findViewById(R.id.menuButton1);



carbutton.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {

Intent intent = new Intent();

setResult(RESULT_OK, intent);

finish();

};

});

}

}







LogCat:







02-26 16:35:50.158: W/dalvikvm(341): threadid=3: thread exiting with uncaught exception (group=0x4001b188)

02-26 16:35:50.158: E/AndroidRuntime(341): Uncaught handler: thread main exiting due to uncaught exception

02-26 16:35:50.168: E/AndroidRuntime(341): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.forza/com.forza.CarList}: java.lang.NullPointerException

02-26 16:35:50.168: E/AndroidRuntime(341): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)

02-26 16:35:50.168: E/AndroidRuntime(341): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)

02-26 16:35:50.168: E/AndroidRuntime(341): at android.app.ActivityThread.access$2200(ActivityThread.java:119)

02-26 16:35:50.168: E/AndroidRuntime(341): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)

02-26 16:35:50.168: E/AndroidRuntime(341): at android.os.Handler.dispatchMessage(Handler.java:99)

02-26 16:35:50.168: E/AndroidRuntime(341): at android.os.Looper.loop(Looper.java:123)

02-26 16:35:50.168: E/AndroidRuntime(341): at android.app.ActivityThread.main(ActivityThread.java:4363)

02-26 16:35:50.168: E/AndroidRuntime(341): at java.lang.reflect.Method.invokeNative(Native Method)

02-26 16:35:50.168: E/AndroidRuntime(341): at java.lang.reflect.Method.invoke(Method.java:521)

02-26 16:35:50.168: E/AndroidRuntime(341): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)

02-26 16:35:50.168: E/AndroidRuntime(341): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

02-26 16:35:50.168: E/AndroidRuntime(341): at dalvik.system.NativeStart.main(Native Method)

02-26 16:35:50.168: E/AndroidRuntime(341): Caused by: java.lang.NullPointerException

02-26 16:35:50.168: E/AndroidRuntime(341): at android.app.Activity.findViewById(Activity.java:1612)

02-26 16:35:50.168: E/AndroidRuntime(341): at com.forza.CarList.<init>(CarList.java:15)

02-26 16:35:50.168: E/AndroidRuntime(341): at java.lang.Class.newInstanceImpl(Native Method)

02-26 16:35:50.168: E/AndroidRuntime(341): at java.lang.Class.newInstance(Class.java:1479)

02-26 16:35:50.168: E/AndroidRuntime(341): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)

02-26 16:35:50.168: E/AndroidRuntime(341): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)

02-26 16:35:50.168: E/AndroidRuntime(341): ... 11 more

02-26 16:35:50.178: I/dalvikvm(341): threadid=7: reacting to signal 3

02-26 16:35:50.178: E/dalvikvm(341): Unable to open stack trace file '/data/anr/traces.txt': Permission denied

02-26 16:35:53.198: I/Process(341): Sending signal. PID: 341 SIG: 9

02-26 16:35:53.608: D/dalvikvm(348): GC freed 611 objects / 48680 bytes in 58ms

02-26 16:35:54.258: D/dalvikvm(348): GC freed 59 objects / 2336 bytes in 50ms







Is it even possible to go from a regular view to a ListView?


Comments

  1. The key line in the log is this :

    02-26 16:35:50.168: E/AndroidRuntime(341): Caused by: java.lang.NullPointerException
    02-26 16:35:50.168: E/AndroidRuntime(341): at android.app.Activity.findViewById(Activity.java:1612)


    You are getting a null pointer exception trying to find some view.

    I suspect this is your line 1612:

    ListView carList = (ListView) findViewById(R.id.mylist);


    This should be inside your onCreate() because at that point (where it is now) it wonT have been initilized yet.




    Is it even possible to go from a regular view to a ListView?


    It sure is. But in case you donT know about it already, I also suggest you should check the ListActivity which would allow easy handling of the entire list data and events on the items of your CarList.



    EDIT Missing button in the carlist.xml

    As you set your ContentView as the carlist.xml with the line

    setContentView(R.layout.carlist);


    You need to have a matching ImageView called menuButton1 in the carlist.xml, otherwise you ll get an error in the following call:

    ImageView carbutton = (ImageView) findViewById(R.id.menuButton1);


    To avoid the error, just add a new ImageView button in the carlist.xml (this time call it something else, not menuButton1)

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?

CCNA 3 Final Exam => latest version

1 . Which security protocol or measure would provide the greatest protection for a wireless LAN? WPA2 cloaking SSIDs shared WEP key MAC address filtering   2 . Refer to the exhibit. All trunk links are operational and all VLANs are allowed on all trunk links. An ARP request is sent by computer 5. Which device or devices will receive this message? only computer 4 computer 3 and RTR-A computer 4 and RTR-A computer 1, computer 2, computer 4, and RTR-A computer 1, computer 2, computer 3, computer 4, and RTR-A all of the computers and the router   3 . Refer to the exhibit. Hosts A and B, connected to hub HB1, attempt to transmit a frame at the same time but a collision occurs. Which hosts will receive the collision jamming signal? only hosts A and B only hosts A, B, and C only hosts A, B, C, and D only hosts A, B, C, and E   4 . Refer to the exhibit. Router RA receives a packet with a source address of 192.168.1.65 and a destination address of 192.168.1.161...