Iam trying to implement a Custom ListView and I have been following the suggestions in this SO question ListView with Add and Delete Buttons in each Row in android. But I am still doing something wrong because when I click the add button in the screen shot below ...
... I catch an error out put this message :
onClick() adapter is NULL!!!
Here is my code:
public class MyActivity extends ListActivity implements OnClickListener {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bookmarks);
addButton = (Button) findViewById(R.id.add_button);
addButton.setOnClickListener(this);
bookmarkNameEditText = (EditText) findViewById(R.id.editText);
Intent i = getIntent();
default_bookmark_name = i.getStringExtra("default_bookmark_name");
currentTrack = i.getIntExtra("currentTrack",0);
currentTrackPosition = i.getIntExtra("currentTrackPosition", 0);
bookmarkNameEditText.setText(default_bookmark_name);
datasource = new BookmarkDataSource(this);
datasource.open();
ArrayList<Bookmark> values = datasource.getAllBookmarks();
//instantiate custom adapter
MyCustomAdapter adapter = new MyCustomAdapter(values, this);
//handle listview and assign adapter
ListView lView = (ListView)findViewById(android.R.id.list);
lView.setAdapter(adapter);
}
@Override
public void onClick(View src) {
ArrayAdapter<Bookmark> adapter = (ArrayAdapter<Bookmark>) getListAdapter();
if (adapter == null ) {
Log.i(TAG, "MyActivity onClick() adapter is NULL!!!");
return;
}
switch (src.getId()) {
case R.id.add_button:
Log.i(TAG, "ADD BUTTON CLICKED");
String new_bookmark_name = bookmarkNameEditText.getText().toString();
Log.i(TAG, "MyActivity onClick() new_bookmark_name = [" + new_bookmark_name + "] currentTrackPosition = [" + currentTrackPosition + "]");
Bookmark bm = datasource.createBookmark(new_bookmark_name, currentTrack,currentTrackPosition);
//adapter.add(bm);
Log.i(TAG,"MyActivity onClick() createdBookmark with name = " + bm.getName());
adapter.add(bm);
adapter.notifyDataSetChanged();
break;
} // end switch
} // end onClick()