如何在android中单击按钮获取listview的特定行项? [英] How to get the particular row item of the listview on the click of the button in android ?

查看:154
本文介绍了如何在android中单击按钮获取listview的特定行项?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的适配器类是: -



公共类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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆