如何在android中单击按钮获取listview的特定行项? [英] How to get the particular row item of the listview on the click of the button in android ?
问题描述
我的适配器类是: -
公共类CategoryAdapter扩展BaseAdapter {
private ArrayList< PojoCategory> mList;
private Context mContext;
private ViewHolder viewHolder;
private GeneralUtilities generalUtilities;
private DataBaseHandler dbh;
public CategoryAdapter(Context mContext,ArrayList< PojoCategory> mList){
this.mContext = mContext;
this.mList = mList;
generalUtilities = new GeneralUtilities(mContext);
dbh = new DataBaseHandler(mContext);
}
@Override
public int getCount(){
if(mList!= null){
return mList.size() ;
}
返回0;
}
@Override
public Object getItem(int position){
return mList.get(position);
}
@Override
public long getItemId(int position){
返回位置;
}
@Override
public View getView(final int position,View view,ViewGroup parent){
LayoutInflater layoutInflater =(LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(view == null){
view = layoutInflater。 inflate(R.layout.category,parent,false);
viewHolder = new ViewHolder();
viewHolder.Dish_name =(TextView )view.findViewById(R.id.nameofdish);
viewHolder.dish_description =(TextView)view.findViewById(R.id.dishdescription);
viewHolder.Dish_rate = (TextView)view.findViewById(R.id.rateofdish);
viewHolder.item_image =(ImageView)view.findViewById(R.id.img_item);
viewHolder.btnAddCart =(Button)view.findViewById(R.id.btn_add_cart);
}否则{
viewHolder =(ViewHolder)view.getTag();
}
view.setTag(viewHolder);
final PojoCategory pojoCategory =(PojoCategory)getItem(position);
viewHolder.Dish_name.setText(pojoCategory.getDish_name());
viewHolder.dish_description.setText(pojoCategory.getdish_description());
viewHolder.Dish_rate.setText(pojoCategory.getDish_rate());
Glide.with(mContext).load(pojoCategory.getCategory_Image())。into(viewHolder.item_image);
viewHolder.btnAddCart.setTag(position);
viewHolder .btnAddCart.setOnClickListener(new View.OnClickListener(){
@Override >
public void onClick(查看v){
String tag = v.getTag()。toString();
if(tag!= null){
int position = Integer.parseInt(tag);
}
for(int i = 0;我<位置; i ++){
dbh.insertData(pojoCategory.getDish_name(),pojoCategory.getDish_rate(),pojoCategory.getCategory_Image());
}
< br $>
}
});
返回查看;
}
class ViewHolder {
TextView Dish_name,dish_description,Dish_rate,tv_Number;
ImageView item_image;
按钮btnAddCart;
//按钮mBtnAdd,mBtnMinus;
}
}
i想要点击按钮在listview的特定行的数据库中提交数据!我怎么能这样做?
我尝试过:
i想要在点击按钮时在数据库中添加listview的特定行数据!我的适配器类显示了!请告诉我该怎么做?
My adapter class is :-
public class CategoryAdapter extends BaseAdapter {
private ArrayList<PojoCategory> mList;
private Context mContext;
private ViewHolder viewHolder;
private GeneralUtilities generalUtilities;
private DataBaseHandler dbh;
public CategoryAdapter(Context mContext, ArrayList<PojoCategory> mList) {
this.mContext = mContext;
this.mList = mList;
generalUtilities = new GeneralUtilities(mContext);
dbh = new DataBaseHandler(mContext);
}
@Override
public int getCount() {
if (mList != null) {
return mList.size();
}
return 0;
}
@Override
public Object getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View view, ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null) {
view = layoutInflater.inflate(R.layout.category, parent, false);
viewHolder = new ViewHolder();
viewHolder.Dish_name = (TextView) view.findViewById(R.id.nameofdish);
viewHolder.dish_description = (TextView) view.findViewById(R.id.dishdescription);
viewHolder.Dish_rate = (TextView) view.findViewById(R.id.rateofdish);
viewHolder.item_image = (ImageView) view.findViewById(R.id.img_item);
viewHolder.btnAddCart = (Button) view.findViewById(R.id.btn_add_cart);
} else {
viewHolder = (ViewHolder) view.getTag();
}
view.setTag(viewHolder);
final PojoCategory pojoCategory = (PojoCategory) getItem(position);
viewHolder.Dish_name.setText(pojoCategory.getDish_name());
viewHolder.dish_description.setText(pojoCategory.getdish_description());
viewHolder.Dish_rate.setText(pojoCategory.getDish_rate());
Glide.with(mContext).load(pojoCategory.getCategory_Image()).into(viewHolder.item_image);
viewHolder.btnAddCart.setTag(position);
viewHolder.btnAddCart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tag = v.getTag().toString();
if (tag != null) {
int position = Integer.parseInt(tag);
}
for (int i = 0; i < position; i++) {
dbh.insertData(pojoCategory.getDish_name(), pojoCategory.getDish_rate(), pojoCategory.getCategory_Image());
}
}
});
return view;
}
class ViewHolder {
TextView Dish_name, dish_description, Dish_rate, tv_Number;
ImageView item_image;
Button btnAddCart;
// Button mBtnAdd, mBtnMinus;
}
}
i want to submit data in database of the particular row of the listview on the click of the button ! how can i do this ??
What I have tried:
i want to add particular row data of the listview in the database on the click of the button ! my adapter class is shown ! please tell me how can i do this ??
推荐答案
所选项目的位置将返回给onClick处理程序。请参阅列表视图| Android开发者 [ ^ ]。
The position of the selected item is returned to the onClick handler. See List View | Android Developers[^].
您可以通过游标对象获取特定的行数据,如:
You can get a particular row data by a cursor object like:
Cursor c = (Cursor)mListView.getItemAtPosition(position);
您需要遵循的适当示例:
java - 如何将列表视图数据传递给SQLite数据库? - 堆栈溢出 [ ^ ]
这篇关于如何在android中单击按钮获取listview的特定行项?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!