I am using the base adapter , i have list which contains list with the text view (means left side sent items and below to that ,right side received items, i want to click o
Your code is right just add the click listener below this.
viewHolder.sms_from_row=(TextView)convertView.findViewById(R.id.sms_from_txtview);
viewHolder.sms_to_row=(TextView)convertView.findViewById(R.id.sms_sendto_txtview);
Below this add click listener like this.
viewHolder.sms_from_row.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
viewHolder.sms_to_row.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
Hope it help you.
Thanks.
Implement click listener for both when you initialize that view
viewHolder.sms_from_row.setOnClickListener(new OnClickListener(){
public void onClick(View view){
// Todo thing
}
});
viewHolder.sms_to_row.setOnClickListener(new OnClickListener(){
public void onClick(View view){
// Todo thing
}
});
there is onItemClickListener in android, you can use that
ListView listview = (ListView)findViewById(R.id.yourlist);
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// @todo
}
});
For individual view in you list item, you can always add click listener in getView method.
Write on item click on textview
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.messagelist_row, null);
viewHolder=new ViewHolder();
viewHolder.sms_from_row=(TextView)convertView.findViewById(R.id.sms_from_txtview);
viewHolder.sms_to_row=(TextView)convertView.findViewById(R.id.sms_sendto_txtview);
viewHolder.sms_from_row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
else
{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.sms_from_row.setVisibility(View.VISIBLE);
viewHolder.sms_to_row.setVisibility(View.VISIBLE);
if(Constant_Variables.Sms_Status_list.get(position).equalsIgnoreCase(Twilioresponse_Utils.sms_sent))
{
viewHolder.sms_from_row.setVisibility(View.GONE);
viewHolder.sms_to_row.setText("Sent: "+Constant_Variables.Sms_from_list.get(position));
}
else if(Constant_Variables.Sms_Status_list.get(position).equalsIgnoreCase(Twilioresponse_Utils.sms_received))
{
viewHolder.sms_to_row.setVisibility(View.GONE);
viewHolder.sms_from_row.setText("Received: "+Constant_Variables.Sms_to_list.get(position));
}
else
{
viewHolder.sms_from_row.setText("Message in queued.");
viewHolder.sms_to_row.setVisibility(View.VISIBLE);
}
convertView.setTag(viewHolder);
return convertView;
}
When clicked on list
Clicked on Delete icon
here is the code you can refer:
public class CaseAdapter extends BaseAdapter{
Context context;
ArrayList<PojoClass> list;
LayoutInflater inflater;
public CaseAdapter(Context context,ArrayList<PojoClass> list)
{
this.context=context;
this.list=list;
inflater=(LayoutInflater)this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if(row == null)
{
row = inflater.inflate(R.layout.activity_home_screen, parent,false);
holder = new ViewHolder(row);
row.setTag(holder);
}
else
{
holder = (ViewHolder) row.getTag();
}
holder.caseNumber.setText(list.get(position).getCaseNo());
holder.state.setText(list.get(position).getState());
holder.date.setText(list.get(position).getDate());
row.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "record clicked!", Toast.LENGTH_LONG).show();
}
});
holder.delete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
v=(View) v.getParent();//utilizing the View object...or we can use new view object
//View view=(View)v.getParent();//this one also we can use...but instead of v object you need to use view object;
TextView number=(TextView)v.findViewById(R.id.textView_case_number);
InfoDb db=new InfoDb(context);//using for remove record from database
db.open();
if(db.removeRecord(number.getText().toString()))
{
list.remove(position);
Toast.makeText(context, "Record Deleted!", Toast.LENGTH_LONG).show();
CaseAdapter.this.notifyDataSetChanged();
}else
Toast.makeText(context, "Record not Deleted!", Toast.LENGTH_LONG).show();
db.close();
}
});
return row;
}
public class ViewHolder{
TextView state,caseNumber,date;
ImageView delete;
public ViewHolder(View v){
state=(TextView)v.findViewById(R.id.textView_State);
caseNumber=(TextView)v.findViewById(R.id.textView_case_number);
date=(TextView)v.findViewById(R.id.textView_date);
delete=(ImageView)v.findViewById(R.id.ImageView_Delete);
}
}
}