Monday, 9 September 2013

custom listview with multiple button and actionListener in android

custom listview with multiple button and actionListener in android

I am doing display custom listview. The single listview have two edittext,
two textview and three buttons. two button visible is false. the two
button visible true when the third button click. And access the edit text
value also.
public class StorageListViewAdapter extends ArrayAdapter implements
OnClickListener{
Context context;
int[] _intRadio = new int[20];
public int size=10;
ViewHolder[] holderArray;
Hashtable<String,ViewHolder> holderObjects=new Hashtable<String,
ViewHolder>();
public StorageListViewAdapter(Context context, int
resourceId,List<StorageAccountItem> items,int length) {
super(context, resourceId, items);
this.context = context;
this.size=length;
holderArray =new ViewHolder[size];
for(int i=0;i<length;i++)
holderArray[i]=null;
}
/*private view holder class*/
public class ViewHolder{
EditText AccountName;
EditText AccessKey;
Button delete;
Button cancel;
Button edit;
int index;
}
int Position;
ViewHolder holder=null;
public View getView(int position, View convertView, ViewGroup parent) {
Position=position;
//Log.d("window","size "+holderArray.length);
StorageAccountItem StorageAccountItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.delete=(Button)convertView.findViewById(R.id.delete);
holder.cancel=(Button)convertView.findViewById(R.id.cancel);
holder.edit=(Button)convertView.findViewById(R.id.edit);
holder.AccountName = (EditText)
convertView.findViewById(R.id.accountName);
holder.AccessKey = (EditText)
convertView.findViewById(R.id.accessKey);
holder.index=position;
convertView.setTag(holder);
/* holder.edit.setId(position);
holder.delete.setId(position);
holder.cancel.setId(position);
holder.edit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
for (int i = 0; i < _intRadio.length; i++) {
if (i == v.getId()) {
_intRadio[i] = 1;
} else {
_intRadio[i] = 0;
}
}
notifyDataSetChanged();
}
});*/
} else
holder = (ViewHolder) convertView.getTag();
holder.edit.setTag(position);
//holder.edit.setOnClickListener(this);
holder.index=position;
//holderArray[StorageAccountItem.getindex()]=new ViewHolder();
holderArray[StorageAccountItem.getindex()]=holder;
Log.d("window","Account Name
"+holder.AccountName.getText()+StorageAccountItem.getaccountName());
Log.d("window","position"+position);
Log.d("window","index"+StorageAccountItem.getindex());
holderObjects.put(""+position, holder);
Log.d("window", "length"+holderObjects.size());
holder.delete.setVisibility(View.INVISIBLE);
holder.cancel.setVisibility(View.INVISIBLE);
holder.AccountName.setText(StorageAccountItem.getaccountName());
holder.AccessKey.setText(StorageAccountItem.getaccessKey());
holder.AccountName.setEnabled(false);
holder.AccessKey.setEnabled(false);
holder.edit.setOnClickListener(new View.OnClickListener( ) {
public void onClick(View view) {
Log.d("window","clicked");
holder.delete.setVisibility(View.VISIBLE);
holder.cancel.setVisibility(View.VISIBLE);
holder.edit.setText("SAVE");
}
});
holder.cancel.setOnClickListener(new View.OnClickListener( ) {
public void onClick(View view) {
Log.d("window","clicked");
holder.delete.setVisibility(View.INVISIBLE);
holder.cancel.setVisibility(View.INVISIBLE);
holder.edit.setText("EDIT");
}
});
return convertView;
}
public void onClick(View v) {
ViewHolder holder;
int position=(Integer)v.getTag();
holder=holderObjects.get(""+position);
Log.d("window","clicked"+position);
holder.delete.setVisibility(View.VISIBLE);
holder.cancel.setVisibility(View.VISIBLE);
holder.edit.setText(""+position);
Log.d("window","id"+getItemId(position));
}
}

No comments:

Post a Comment