Android : i want to show linearlayout visible/gone when i click on the button

on Wednesday, July 30, 2014


I want to show layout based on user click on the button intially i kept in gone position when user click on button i need to visible for particular position only,but my problem is when start to visible or gone to the view based user click on button the layout is visible for all position,how to show linerlauout is visble to only user clcking positions.



private String[] mOptinItems = new String[] { "achsdsgdddddddddddddd",
"achsdsgdddddddddddddd" };

private String[] dateArray = new String[] { "22nd jun 1012",
"22nd jun 1012" };
int[] myImageList = new int[] { R.drawable.img, R.drawable.img };

private boolean btnMoreStatus = false;;

private ListView mEvents_Lsit;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.eventlist);

initViews();
CustomMovieListViewAdapter adapter = new CustomMovieListViewAdapter(
getApplicationContext(), R.layout.event_item);

mEvents_Lsit.setAdapter(adapter);
// addItemsToLL();

}

private void initViews() {

mEvents_Lsit = (ListView) findViewById(R.id.settings_list_ll);

}

/**
* This Adapter is used forto the set items to movie item list.
*
* @author imaddikunta
*
*/
public class CustomMovieListViewAdapter extends BaseAdapter {

Context context;

ViewHolder holder;

public CustomMovieListViewAdapter(Context context, int resourceId) {
super();
this.context = context;

}

/* private view holder class */
private class ViewHolder {
ImageView eventImageView;
TextView tTitle;
TextView date;
TextView eventTitle;
TextView eventText;
Button showText;
LinearLayout llShowText;
}

public View getView(final int position, View convertView,
ViewGroup parent) {

holder = null;

// final MovieItemBean movie = mMovieItemsList.get(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

if (convertView == null) {
convertView = mInflater.inflate(R.layout.event_item, null);
holder = new ViewHolder();
holder.tTitle = (TextView) convertView
.findViewById(R.id.tvTittle);
holder.date = (TextView) convertView.findViewById(R.id.tvDate);
holder.eventImageView = (ImageView) convertView
.findViewById(R.id.event_img_view);

holder.llShowText = (LinearLayout) convertView
.findViewById(R.id.lleventDisplay);
holder.showText = (Button) convertView
.findViewById(R.id.showText);

convertView.setTag(holder);
} else

holder = (ViewHolder) convertView.getTag();

holder.tTitle.setText(mOptinItems[position]);
holder.date.setText(dateArray[position]);
holder.eventImageView.setImageResource(myImageList[position]);

if (btnMoreStatus) {
holder.llShowText.setVisibility(View.VISIBLE);
} else {
holder.llShowText.setVisibility(View.GONE);
}

holder.showText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {

if (holder.llShowText.getVisibility() == View.GONE) {

holder.llShowText.setVisibility(View.VISIBLE);
btnMoreStatus = true;
notifyDataSetChanged();

} else {

btnMoreStatus = false;
holder.llShowText.setVisibility(View.GONE);
notifyDataSetChanged();
}
}
});

return convertView;
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return mOptinItems.length;
}

@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}

}

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

}
enter code here

0 comments:

Post a Comment