Custom listview Adapter in android
package com.rskhan;
import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
public class Itemadapter extends BaseAdapter {
private static ArrayList<ItemDetails> itemDetailsrrayList;
Context context;
int position2 = 10000;
String activityType ;
private LayoutInflater l_Inflater;
public Itemadapter(Context context, ArrayList<ItemDetails> results,String activityType) {
itemDetailsrrayList = results;
l_Inflater = LayoutInflater.from(context);
this.context = context;
this.activityType = activityType;
}
public int getCount() {
return itemDetailsrrayList.size();
}
public Object getItem(int position) {
return itemDetailsrrayList.get(position);
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = l_Inflater.inflate(R.layout.item_details_view, null);
holder.itemImage = (ImageView) convertView.findViewById(R.id.photo);
holder.txt_itemName = (TextView) convertView
.findViewById(R.id.name);
holder.txt_itemPrice = (TextView) convertView
.findViewById(R.id.price);
holder.amount = (TextView) convertView.findViewById(R.id.amount);
holder.caption = (EditText) convertView.findViewById(R.id.quantity);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// Fill EditText with the value you have in data source
holder.caption.setText(itemDetailsrrayList.get(position)
.getItemDescription());
holder.caption.setId(position);
holder.txt_itemName
.setText(itemDetailsrrayList.get(position).getName());
holder.txt_itemPrice.setText(itemDetailsrrayList.get(position)
.getPrice());
holder.amount.setText(itemDetailsrrayList.get(position).getAmount());
holder.itemImage.setImageResource(R.drawable.icon);
final ViewHolder myholder = holder;
// we need to update adapter once we finish with editing
holder.caption.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
final int position = v.getId();
final EditText Caption = (EditText) v;
itemDetailsrrayList.get(position).setItemDescription(
Caption.getText().toString());
if (Caption.getText().toString().length()>0) {
int pamount = Integer.valueOf(Caption.getText()
.toString())
* Integer.valueOf(itemDetailsrrayList
.get(position).getPrice());
myholder.amount.setText(String.valueOf(pamount));
itemDetailsrrayList.get(position)
.setAmount(
String.valueOf(pamount));
int i = 0;
int sum = 0;
while(i<itemDetailsrrayList.size()){
if(!itemDetailsrrayList
.get(i).getAmount().equals("0")){
sum =sum+ Integer.valueOf(itemDetailsrrayList
.get(i).getAmount().toString());
}
if(Caption.getText()
.toString().equals("")){
itemDetailsrrayList
.get(i).setAmount("0");
}
i++;
}
if(activityType.equals("delivery")){
String teString = String.valueOf(sum);
Delivery_Finalize.total.setText(teString);
}else{
String teString = String.valueOf(sum);
NewOrder.total.setText(teString);
}
}
}
}
});
return convertView;
}
}
class ViewHolder {
EditText caption;
TextView txt_itemName;
TextView txt_itemPrice;
TextView amount;
ImageView itemImage;
}
import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
public class Itemadapter extends BaseAdapter {
private static ArrayList<ItemDetails> itemDetailsrrayList;
Context context;
int position2 = 10000;
String activityType ;
private LayoutInflater l_Inflater;
public Itemadapter(Context context, ArrayList<ItemDetails> results,String activityType) {
itemDetailsrrayList = results;
l_Inflater = LayoutInflater.from(context);
this.context = context;
this.activityType = activityType;
}
public int getCount() {
return itemDetailsrrayList.size();
}
public Object getItem(int position) {
return itemDetailsrrayList.get(position);
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = l_Inflater.inflate(R.layout.item_details_view, null);
holder.itemImage = (ImageView) convertView.findViewById(R.id.photo);
holder.txt_itemName = (TextView) convertView
.findViewById(R.id.name);
holder.txt_itemPrice = (TextView) convertView
.findViewById(R.id.price);
holder.amount = (TextView) convertView.findViewById(R.id.amount);
holder.caption = (EditText) convertView.findViewById(R.id.quantity);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// Fill EditText with the value you have in data source
holder.caption.setText(itemDetailsrrayList.get(position)
.getItemDescription());
holder.caption.setId(position);
holder.txt_itemName
.setText(itemDetailsrrayList.get(position).getName());
holder.txt_itemPrice.setText(itemDetailsrrayList.get(position)
.getPrice());
holder.amount.setText(itemDetailsrrayList.get(position).getAmount());
holder.itemImage.setImageResource(R.drawable.icon);
final ViewHolder myholder = holder;
// we need to update adapter once we finish with editing
holder.caption.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
final int position = v.getId();
final EditText Caption = (EditText) v;
itemDetailsrrayList.get(position).setItemDescription(
Caption.getText().toString());
if (Caption.getText().toString().length()>0) {
int pamount = Integer.valueOf(Caption.getText()
.toString())
* Integer.valueOf(itemDetailsrrayList
.get(position).getPrice());
myholder.amount.setText(String.valueOf(pamount));
itemDetailsrrayList.get(position)
.setAmount(
String.valueOf(pamount));
int i = 0;
int sum = 0;
while(i<itemDetailsrrayList.size()){
if(!itemDetailsrrayList
.get(i).getAmount().equals("0")){
sum =sum+ Integer.valueOf(itemDetailsrrayList
.get(i).getAmount().toString());
}
if(Caption.getText()
.toString().equals("")){
itemDetailsrrayList
.get(i).setAmount("0");
}
i++;
}
if(activityType.equals("delivery")){
String teString = String.valueOf(sum);
Delivery_Finalize.total.setText(teString);
}else{
String teString = String.valueOf(sum);
NewOrder.total.setText(teString);
}
}
}
}
});
return convertView;
}
}
class ViewHolder {
EditText caption;
TextView txt_itemName;
TextView txt_itemPrice;
TextView amount;
ImageView itemImage;
}
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন