Java 如何在列表视图中为项目设置单击,但不转到其他活动

Java 如何在列表视图中为项目设置单击,但不转到其他活动,java,android,Java,Android,首先,很抱歉这个问题的标题不适合我的情况,但我要解释我的情况,首先我创建了一个片段,在这个片段中创建了一个列表视图,并创建了另一个xml文件,其中包含列表中每个项目的视图,为此item.xml创建了一个setter和getter的java类,还创建了一个适配器类,其视图如下 在这个视图中,有一个橙色的小相对布局,它有数量,在这个橙色小框的右边,我有一个按钮,这个按钮的功能应该会减少列表中项目的数量。因此,如果我在列表视图中单击项目,我所需要的就是增加这个小框中的数量,例如,如果我单击菠萝项目,它

首先,很抱歉这个问题的标题不适合我的情况,但我要解释我的情况,首先我创建了一个片段,在这个片段中创建了一个列表视图,并创建了另一个xml文件,其中包含列表中每个项目的视图,为此item.xml创建了一个setter和getter的java类,还创建了一个适配器类,其视图如下 在这个视图中,有一个橙色的小相对布局,它有数量,在这个橙色小框的右边,我有一个按钮,这个按钮的功能应该会减少列表中项目的数量。因此,如果我在列表视图中单击项目,我所需要的就是增加这个小框中的数量,例如,如果我单击菠萝项目,它将增加我点击的项目数量,而不是0,将是1,我在同一项目上再次点击的id,它将取代1,而不是2,以此类推,对于小灰色按钮,它减少了小橙色框中的数量 这是列表视图Fragment.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="abtech.waiteriano.com.waitrer.fragments.MenuLVFragment">

    <ListView
        android:id="@+id/menuLV"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>
这是我的适配器类

package abtech.waiteriano.com.waitrer.adapters;

import android.app.Activity;
import android.content.Context;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;

import java.util.ArrayList;

import abtech.waiteriano.com.waitrer.R;
import abtech.waiteriano.com.waitrer.getters_and_setters.MenuListItem;

/**
 * Created by dell on 3/1/2017.
 */

public class CustomMenuListViewAdapter extends ArrayAdapter<MenuListItem> {
    Context context;
    int layoutResourceId;
    ArrayList<MenuListItem> dataListMenu = new ArrayList<MenuListItem>();

    public CustomMenuListViewAdapter(Context context, int layoutResourceId, ArrayList<MenuListItem>dataListMenu) {
        super(context,layoutResourceId,dataListMenu);
        this.layoutResourceId = layoutResourceId;
        this.context = context;
        this.dataListMenu = dataListMenu;


    }

    @NonNull
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View listMenuRow = convertView;
        RecordListMenuHolder recordListMenuHolder = null;

        if(listMenuRow == null){
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            listMenuRow = inflater.inflate(layoutResourceId, parent, false);

            recordListMenuHolder = new RecordListMenuHolder();
//            recordListMenuHolder.menuItemImage = (String) listMenuRow.findViewById(R.id.itemImage);
            recordListMenuHolder.listMenuTV = (TextView) listMenuRow.findViewById(R.id.menulistTV2);
            recordListMenuHolder.qtyView = (RelativeLayout) listMenuRow.findViewById(R.id.qtyID);
            recordListMenuHolder.minusBtn = (Button) listMenuRow.findViewById(R.id.minusBtn);
            listMenuRow.setTag(recordListMenuHolder);
        }else{
            recordListMenuHolder = (RecordListMenuHolder)listMenuRow.getTag();
        }

        MenuListItem menuListItem = dataListMenu.get(position);
        recordListMenuHolder.listMenuTV.setText(menuListItem.getMenuItemName());

        return listMenuRow;
    }

    static class RecordListMenuHolder {
//        Image menuItemImage;
        TextView listMenuTV;
        RelativeLayout qtyView;
        Button minusBtn;
        Button plusBtn;
    }
}
包abtech.waiteriano.com.waiter.adapters;
导入android.app.Activity;
导入android.content.Context;
导入android.support.annotation.NonNull;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.RelativeLayout;
导入android.widget.TextView;
导入java.util.ArrayList;
进口abtech.waiteriano.com.waiter.R;
导入abtech.waiteriano.com.waiter.getters_和_setters.MenuListItem;
/**
*由戴尔于2017年3月1日创建。
*/
公共类CustomMenuListViewAdapter扩展了ArrayAdapter{
语境;
国际布局资源;
ArrayList dataListMenu=新建ArrayList();
公共CustomMenuListViewAdapter(上下文上下文、int layoutResourceId、ArrayListdataListMenu){
超级(上下文、布局资源ID、数据列表菜单);
this.layoutResourceId=layoutResourceId;
this.context=上下文;
this.dataListMenu=dataListMenu;
}
@非空
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
View listMenuRow=转换视图;
RecordListMenuHold RecordListMenuHold=null;
如果(listMenuRow==null){
LayoutInflater充气器=((活动)上下文)。getLayoutInflater();
listMenuRow=充气机。充气(layoutResourceId,父项,false);
RecordListMenuHold=新建RecordListMenuHold();
//recordListMenuHolder.menuItemImage=(字符串)listMenuRow.findViewById(R.id.itemImage);
recordListMenuHolder.listMenuTV=(TextView)listMenuRow.findViewById(R.id.MenuListV2);
recordListMenuHolder.qtyView=(RelativeLayout)listMenuRow.findViewById(R.id.qtyID);
recordListMenuHolder.minSbtn=(按钮)listMenuRow.findViewById(R.id.minSbtn);
setTag(recordListMenuHolder);
}否则{
recordListMenuHolder=(recordListMenuHolder)listMenuRow.getTag();
}
MenuListItem MenuListItem=dataListMenu.get(位置);
recordListMenuHolder.listMenuTV.setText(menuListItem.getMenuItemName());
返回列表菜单;
}
静态类RecordListMenuHolder{
//图像菜单图像;
文本视图列表菜单;
相对性qtyView;
按钮号;
按钮plusBtn;
}
}
对不起,如果我的解释不可理解,如果有任何查询代码,请留下评论

公共类CustomMenuListViewAdapter扩展了ArrayAdapter{
语境;
国际布局资源;
ArrayList dataListMenu=新建ArrayList();
RecordListMenuHolder记录列表MenuHolder;
整数数量=0;
公共CustomMenuListViewAdapter(上下文上下文、int layoutResourceId、ArrayListdataListMenu){
超级(上下文、布局资源ID、数据列表菜单);
this.layoutResourceId=layoutResourceId;
this.context=上下文;
this.dataListMenu=dataListMenu;
}
@非空
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
View listMenuRow=转换视图;
如果(listMenuRow==null){
LayoutInflater充气器=((活动)上下文)。getLayoutInflater();
listMenuRow=充气机。充气(layoutResourceId,父项,false);
RecordListMenuHold=新建RecordListMenuHold();
//recordListMenuHolder.menuItemImage=(字符串)listMenuRow.findViewById(R.id.itemImage);
recordListMenuHolder.listMenuTV=(TextView)listMenuRow.findViewById(R.id.MenuListV2);
recordListMenuHolder.qtyView=(RelativeLayout)listMenuRow.findViewById(R.id.qtyID);
recordListMenuHolder.minSbtn=(按钮)listMenuRow.findViewById(R.id.minSbtn);
setTag(recordListMenuHolder);
}否则{
recordListMenuHolder=(recordListMenuHolder)listMenuRow.getTag();
}
MenuListItem MenuListItem=dataListMenu.get(位置);
recordListMenuHolder.listMenuTV.setText(menuListItem.getMenuItemName());
listMenuRow.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
数量++;
recordListMenuHolder.qtyView.setText(“+qty”);
}
});
返回列表菜单;
}
静态类RecordListMenuHolder{
//图像菜单图像;
文本视图列表菜单;
相对性qtyView;
按钮号;
按钮plusBtn;
}
}

简短地写下你想做什么,因为我不知道:Phahahahahahaa显然我尽可能地缩短了:P正如你所见,这是一个巨大的例子:P@GrzegorzBro非常感谢你的帮助,但我遇到了一个错误,你可以在我的编辑中查看我在这行listMenuRow=in中发布了一个@Frankenxteinit的带下划线的错误
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:background="#bebdbd"
        android:layout_height="80dp"
        android:id="@+id/menuRL"
        android:layout_width="fill_parent">


        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/questionsign"
            android:layout_marginStart="20dp"
            android:id="@+id/itemImage"
            android:layout_centerVertical="true"
            android:layout_alignParentStart="true" />

        <RelativeLayout
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:layout_marginEnd="37dp"
            android:id="@+id/qtyID"
            android:background="#f9762f"
            android:layout_centerVertical="true"
            android:layout_alignParentEnd="true">

            <TextView
                android:text="0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/txtQTY"
                android:layout_centerVertical="true"
                android:layout_centerHorizontal="true" />
        </RelativeLayout>

        <TextView
            android:text="TextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:textStyle="bold"
            android:id="@+id/menulistTV2"
            android:layout_alignTop="@+id/itemImage"
            android:layout_toEndOf="@+id/itemImage" />

        <Button
            android:text="-"
            android:textSize="15dp"
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:id="@+id/minusBtn"
            android:layout_alignTop="@+id/menulistTV2"
            android:layout_alignParentEnd="true" />

    </RelativeLayout>

</LinearLayout>
import android.graphics.Bitmap;

/**
 * Created by dell on 3/1/2017.
 */

public class MenuListItem {
    Bitmap image;
    String menuItemName;
    String minusButton;
    String plusButton;
    String qtyView;

    public MenuListItem(String menuItemName) {
        super();
        this.image = image;
        this.menuItemName = menuItemName;
        this.minusButton = minusButton;
        this.plusButton = plusButton;
        this.qtyView = qtyView;
    }

    public Bitmap getImage() {
        return image;
    }

    public void setImage(Bitmap image) {
        this.image = image;
    }

    public String getMenuItemName() {
        return menuItemName;
    }

    public void setMenuItemName(String menuItemName) {
        this.menuItemName = menuItemName;
    }
    public String getMinusButton() {
        return minusButton;
    }

    public void setMinusButton(String minusButton) {
        this.minusButton = minusButton;
    }
    public String getPlusButton() {
        return plusButton;
    }

    public void setPlusButton(String plusButton) {
        this.plusButton = plusButton;
    }
    public String getQtyView() {
        return qtyView;
    }

    public void setQtyView(String qtyView) {
        this.qtyView = qtyView;
    }
}
package abtech.waiteriano.com.waitrer.adapters;

import android.app.Activity;
import android.content.Context;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;

import java.util.ArrayList;

import abtech.waiteriano.com.waitrer.R;
import abtech.waiteriano.com.waitrer.getters_and_setters.MenuListItem;

/**
 * Created by dell on 3/1/2017.
 */

public class CustomMenuListViewAdapter extends ArrayAdapter<MenuListItem> {
    Context context;
    int layoutResourceId;
    ArrayList<MenuListItem> dataListMenu = new ArrayList<MenuListItem>();

    public CustomMenuListViewAdapter(Context context, int layoutResourceId, ArrayList<MenuListItem>dataListMenu) {
        super(context,layoutResourceId,dataListMenu);
        this.layoutResourceId = layoutResourceId;
        this.context = context;
        this.dataListMenu = dataListMenu;


    }

    @NonNull
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View listMenuRow = convertView;
        RecordListMenuHolder recordListMenuHolder = null;

        if(listMenuRow == null){
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            listMenuRow = inflater.inflate(layoutResourceId, parent, false);

            recordListMenuHolder = new RecordListMenuHolder();
//            recordListMenuHolder.menuItemImage = (String) listMenuRow.findViewById(R.id.itemImage);
            recordListMenuHolder.listMenuTV = (TextView) listMenuRow.findViewById(R.id.menulistTV2);
            recordListMenuHolder.qtyView = (RelativeLayout) listMenuRow.findViewById(R.id.qtyID);
            recordListMenuHolder.minusBtn = (Button) listMenuRow.findViewById(R.id.minusBtn);
            listMenuRow.setTag(recordListMenuHolder);
        }else{
            recordListMenuHolder = (RecordListMenuHolder)listMenuRow.getTag();
        }

        MenuListItem menuListItem = dataListMenu.get(position);
        recordListMenuHolder.listMenuTV.setText(menuListItem.getMenuItemName());

        return listMenuRow;
    }

    static class RecordListMenuHolder {
//        Image menuItemImage;
        TextView listMenuTV;
        RelativeLayout qtyView;
        Button minusBtn;
        Button plusBtn;
    }
}
public class CustomMenuListViewAdapter extends ArrayAdapter<MenuListItem> {
    Context context;
    int layoutResourceId;
    ArrayList<MenuListItem> dataListMenu = new ArrayList<MenuListItem>();
        RecordListMenuHolder recordListMenuHolder;
int qty = 0;

    public CustomMenuListViewAdapter(Context context, int layoutResourceId, ArrayList<MenuListItem>dataListMenu) {
        super(context,layoutResourceId,dataListMenu);
        this.layoutResourceId = layoutResourceId;
        this.context = context;
        this.dataListMenu = dataListMenu;


    }

    @NonNull
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View listMenuRow = convertView;

        if(listMenuRow == null){
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            listMenuRow = inflater.inflate(layoutResourceId, parent, false);

            recordListMenuHolder = new RecordListMenuHolder();
//            recordListMenuHolder.menuItemImage = (String) listMenuRow.findViewById(R.id.itemImage);
            recordListMenuHolder.listMenuTV = (TextView) listMenuRow.findViewById(R.id.menulistTV2);
            recordListMenuHolder.qtyView = (RelativeLayout) listMenuRow.findViewById(R.id.qtyID);
            recordListMenuHolder.minusBtn = (Button) listMenuRow.findViewById(R.id.minusBtn);
            listMenuRow.setTag(recordListMenuHolder);
        }else{
            recordListMenuHolder = (RecordListMenuHolder)listMenuRow.getTag();
        }

        MenuListItem menuListItem = dataListMenu.get(position);
        recordListMenuHolder.listMenuTV.setText(menuListItem.getMenuItemName());
listMenuRow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
qty++;

recordListMenuHolder.qtyView.setText(""+qty);
            }
        });

        return listMenuRow;
    }

    static class RecordListMenuHolder {
//        Image menuItemImage;
        TextView listMenuTV;
        RelativeLayout qtyView;
        Button minusBtn;
        Button plusBtn;
    }
}