Skip to content Skip to sidebar Skip to footer

Listview Yielding Nullpointerexception On Setonitemclicklistener

I'm attempting to work with through some tutorial code and add in an OnItemClick Listener, but keep throwing an exception when it hits the listener and crashing my app. This is my

Solution 1:

ListActivity doesn't require you to assign a layout via setContentView() that is if you want to show only a list but if you add a another view, your ListView should contain the android:id attribute set to @android:id/list like this xml below

<ListViewandroid:id="@android:id/list"android:layout_width="match_parent"android:layout_height="wrap_content" ></ListView>

try changing your code

ListView lv = (ListView)findViewById(R.id.list);

to this

ListViewlv= getListView();
lv.setOnItemClickListener(newsSelectListener);

Solution 2:

I am not sure your code will work

privateOnItemClickListenernewsSelectListener=newOnItemClickListener()
{
    @OverridepublicvoidonItemClick(AdapterView<?> parent, View view, int position, long id) {
        AlertDialog.Builder alert=newAlertDialog.Builder(RssActivity.this);
        alert.setTitle("Clicked").setMessage("Item clicked").setNeutralButton("OK", null).show();

    }
};

But in my opinion, I often add setOnClickListener() to convertView in getView method in Adapter class

public View getView(finalint position, View convertView, ViewGroup parent) {
......................
convertView.setOnClickListener(newOnClickListener() {
            @OverridepublicvoidonClick(View v) {
                // TODO Auto-generated method stub//Do Somethings in here
                }
            }
        });

Solution 3:

I cannot see where you have initialized your layout...so:

Activity class takes care of creating a window for you in which you can place your UI with setContentView(View).

The onCreate(Bundle) method initializes your Activity. It is where you usually call setContentView(int) with your xml layout(main.xml or your xml which defines your UI). Place it after super.onCreate(..)


With regards with this exception:

java.lang.RuntimeException: Unable to start activity ComponentInfo{}:

check your AndroidManifest.xml if your Activity is already in there:

<activityandroid:name=".<ActivityName>"android:label="@string/app_name"></activity>

If your problem has not been resolved, make use of your Logcat and put Log.d in your methods to see where it's crashing.

Solution 4:

EDIT

Ok - and where are you setting setContentView(...)? The lv

ListViewlv= (ListView) findViewById(R.id.list);

is null because you didn't set contentView.


Probably the reason for this is: you're setting OnClickListener to null in AlertDialog.Builder in setNeutralButton("OK", null).

So when you click "OK" Android invokes (internally) something like this:

neutralButtonListener.onClick(...);

And the neutralButtonListener is null. So you should just provide empty listener at least.

Post a Comment for "Listview Yielding Nullpointerexception On Setonitemclicklistener"