Leo
Leo

Reputation: 3143

ListView update

I have two activities with ListView. This two activitises have individual layout-file. First have myListView01, second have myListView02. How to update listView's adapters? I do so:

ListView list = (ListView)findViewById(R.id.myListView01);
myAdapter = new ArrayAdapter<String>(this, R.layout.item01, R.id.label, array01);  
list.setAdapter(myAdapter);

I remove some items from the array01 and I need to update my listView without this elements. But this solution to ListActivity does not work:

myAdapter.notifyDataSetChanged();

my code:

package ...;
import ...;
public class Class01 extends Activity
{
    ArrayAdapter<String> mAdapter;

    ArrayList<String> array01 = new ArrayList<String>();

    @Override  
    public void onCreate(Bundle savedInstanceState)
    {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.layout01);

        ListView list = (ListView)findViewById(R.id.my_list01);
        mAdapter = new ArrayAdapter<String>(this, R.layout.item01, R.id.label, array01);  

        list.setAdapter(mAdapter);
    }
    public void onListItemClick (ListView parent, View v, int position, long id)
    {  
        array01 = deleteElementByPosition(array01, position);

        mAdapter.notifyDataSetChanged(); //does not work
    }  
    public void deleteElementByPosition()
    {
        ...
    }
}

Upvotes: 0

Views: 212

Answers (1)

biegleux
biegleux

Reputation: 13247

You have not set onItemClickListener for your ListView. Extend your Class01 from ListActivity. Activity class doesn't have onListItemClick() method so it is never invoked. Or set your listener with setOnItemClickListener() for your ListView.

Upvotes: 1

Related Questions