I am creating linear layout dynamically inside for loop for pop up window and trying to add listener to each layout.
I am using following code. But when I click on any of the layout, it clears all data..
LinearLayout layout = null;
for(int i=0;i<data.size();i++)
{
layout=new LinearLayout(MainActivity.this);
layout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
eventFilterlayout.addView(layout);
eventFilterlayout.setTag(new Holder(layout));
imageView=new ImageView(MainActivity.this);
imageView.setImageResource(data.get(i).getImgRes());
imageView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,1.0f));
layout.addView(imageView);
eventNameText=new TextView(MainActivity.this);
eventNameText.setText(data.get(i).getText());
eventNameText.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,4.0f));
eventNameText.setGravity(Gravity.CENTER_VERTICAL);
layout.addView(eventNameText);
final Holder holder=(Holder)eventFilterlayout.getTag();
holder.layout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(eventNameText.getText().equals("All"))
fillGridData(Utils.ALL);
if(eventNameText.getText().equals("Some"))
fillGridData(Utils.SOME);
if(eventNameText.getText().equals("None"))
fillGridData(Utils.NONE);
if(eventNameText.getText().equals("Little more"))
fillGridData(Utils.MORE)
if(eventNameText.getText().equals("Little less"))
fillGridData(Utils.LESS);
window.dismiss();
}
});
}
and in fillGridData method
public void fillGridData(int type)
{
eventData.clear();
switch (type) {
case Utils.ALL:
list.add(new EventData("All",R.raw.hall1),
list.add(new EventData("All", R.raw.hall2));
break;
case Utils.SOME:
list.add(new EventData("Some", R.raw.hall2));
break;
case Utils.NONE:
break;
case Utils.MORE:
list.add(new EventData("More",R.raw.hall1);
break;
case Utils.LESS:
list.add(new EventData("Less",R.raw.hall1),
list.add(new EventData("Less", R.raw.hall2));
break;
default:
break;
}
eventAdapter=new EventAdapter(MainActivity.this,eventData);
gridView.setAdapter(eventAdapter);
eventAdapter.notifyDataSetChanged();
gridView.invalidate();
gridView.bringToFront();
}
So when I click on Linear Layout, data whatever it is displaying goes invisible and to make it visible i need to restart app, no exceptions. Plz help me if i am doing anything wrong....