0

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();
            }
        });

    }
}

3 Answers 3

3

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();
    }
});
Sign up to request clarification or add additional context in comments.

2 Comments

Hi ,It did not work for me,It only add one time element in listview.but not updating listview when I click on imageview for adding element in list. But when I check in Logcat, the list size is incrementing by one every time when i click on imageview.Please help me.
change list.add("rohit") to adapter.add("rohit")
1

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();
    }
});

}
 }

Comments

0

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.