Rohit Sharma
Rohit Sharma

Reputation: 127

Update listview after adding data

I want to update List View after adding some element in Array list on image view click. Can any one please help me ,how can I do this?

Here is my Code.

public class DealDetailActivity extends Activity {

    private ListView lvAddDocument;
    private ImageView ivAddDocument;

    private ArrayList<String> list;

    // private ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.deal_detail_screen);

        list = new ArrayList<String>();

        lvAddDocument = (ListView) findViewById(R.id.lv_add_document);
        ivAddDocument = (ImageView) findViewById(R.id.iv_add_document);

        ivAddDocument.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                list.add("rohit");
                Log.i("list", "" + list.size());

                ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                        DealDetailActivity.this,
                        android.R.layout.simple_list_item_1, list);

                lvAddDocument.setAdapter(adapter);
                adapter.notifyDataSetChanged();
            }
        });

    }
}

Upvotes: 0

Views: 1561

Answers (3)

chirag patel
chirag patel

Reputation: 148

1) You have to declare your arrayList as a global arraylist Means :

 ArrayList<DemoClass> arrlistDemo;

and then in onCreate method you have to create your arrayList Like:

arrlistDemo = new ArrayList<DemoClass>();

2) And than whenever you want to add items , you just have to add items to arrayList and than call notifyDatasetChanged() method .your listView will updated with additional data.

Upvotes: 0

Gracker
Gracker

Reputation: 524

Do this:

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.deal_detail_screen);

list = new ArrayList<String>();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
         DealDetailActivity.this,
         android.R.layout.simple_list_item_1, list);

lvAddDocument = (ListView) findViewById(R.id.lv_add_document);
lvAddDocument.setAdapter(adapter);


ivAddDocument = (ImageView) findViewById(R.id.iv_add_document);

ivAddDocument.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        adapter.add("rohit");
        Log.i("list", "" + list.size());
        adapter.notifyDataSetChanged();
    }
});

Upvotes: 3

kodamirmo
kodamirmo

Reputation: 90

Try put Adapter out of anonymous class:

public class DealDetailActivity extends Activity {

private ListView lvAddDocument;
private ImageView ivAddDocument;

 private ArrayList<String> list;

private ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.deal_detail_screen);

list = new ArrayList<String>();

lvAddDocument = (ListView) findViewById(R.id.lv_add_document);
ivAddDocument = (ImageView) findViewById(R.id.iv_add_document);

adapter = new ArrayAdapter<String>(
                DealDetailActivity.this,
                android.R.layout.simple_list_item_1, list);

lvAddDocument.setAdapter(adapter);

ivAddDocument.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        list.add("rohit");
        Log.i("list", "" + list.size());

        adapter.notifyDataSetChanged();
    }
});

}
 }

Upvotes: 1

Related Questions