title: NullPointerException when calling a private final variable in a method
body: <p>I create <code>private ArrayList&lt;String&gt; values;</code>. <code>values</code> is assigned a value in the <code>onCreate</code> method (<code>final ArrayList&lt;String&gt; values = new ArrayList&lt;String&gt;();</code>). Another method <code>onOptionsItemSelected</code> tries to use <code>values</code>, but then a <code>NullPointerException</code> happens.</p>
  
  <p>The whole class is <a href="http://code.google.com/p/mcfriendslist/source/browse/trunk/src/org/sandholm/max/MCFriendsList/MCFriendsListActivity.java" rel="nofollow">here</a>, sorry if my explanation was hard to understand. The exception occurs on line 55.</p>
  
  <pre><code>package org.sandholm.max.MCFriendsList;
  
  import java.util.ArrayList;
  
  import android.app.ListActivity;
  import android.content.Intent;
  import android.view.Menu;
  import android.view.MenuInflater;
  import android.view.MenuItem;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.os.Bundle;
  import android.widget.Button;
  import android.widget.ListView;
  import android.widget.ArrayAdapter;
  
  public class MCFriendsListActivity extends ListActivity {
      /** Called when the activity is first created. */
          @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.listactivity);
          final ArrayList&lt;String&gt; values = new ArrayList&lt;String&gt;();
          setListAdapter(new ArrayAdapter&lt;String&gt;(this, R.layout.listactivity, values));
                  final ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;String&gt;(this,
                                  android.R.layout.simple_list_item_1, values);
                  setListAdapter(adapter);
          addUser = (Button) findViewById(R.id.button1);
          addUser.setOnClickListener(new OnClickListener() {
                  @Override
                  public void onClick(View v) {
                          values.add("vurp0");
                          adapter.notifyDataSetChanged();
                  }
          });
      }
          @Override
          protected void onListItemClick(ListView l, View v, int position, long id) {
                  String item = (String) getListAdapter().getItem(position);
                  Intent i = new Intent(v.getContext(), MCFriendsInfoActivity.class);
                  i.putExtra("uname", item);
                  v.getContext().startActivity(i);
      }
          @Override
          public boolean onCreateOptionsMenu(Menu menu) {
              MenuInflater inflater = getMenuInflater();
              inflater.inflate(R.menu.menu, menu);
              return true;
          }
          @Override
          public boolean onOptionsItemSelected(MenuItem item) {
              // Handle item selection
              switch (item.getItemId()) {
              case R.id.item1:
                          values.add("vurp0");
                  adapter.notifyDataSetChanged();
                  return true;
              case R.id.item2:
                  //showHelp();
                  return true;
              default:
                  return super.onOptionsItemSelected(item);
              }
          }
          private Button addUser;
          private ArrayList&lt;String&gt; values;
          private ArrayAdapter&lt;String&gt; adapter;
  }
  </code></pre>
  
  <p>Please tell me if you need more information(although I doubt it) and thanks in advance.</p>