Reputation: 127
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
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
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
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