Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将项添加到ListView适配器中的特定列_Java_Android_Listview_Android Adapter - Fatal编程技术网

Java 将项添加到ListView适配器中的特定列

Java 将项添加到ListView适配器中的特定列,java,android,listview,android-adapter,Java,Android,Listview,Android Adapter,我有一个增量系统,我想在onClick时将对话框警报中的值保存在列表视图适配器的一列中 这是我的适配器: public class VanzatorProduseList extends ArrayAdapter<VanzatorProduse> { private Activity context; private SparseBooleanArray selectedListItemsIds; private List<VanzatorProduse> vanzat

我有一个
增量系统
,我想在
onClick
时将
对话框警报
中的值保存在
列表视图适配器
的一列中

这是我的
适配器

public class VanzatorProduseList extends ArrayAdapter<VanzatorProduse> {

private Activity context;
private SparseBooleanArray selectedListItemsIds;
private List<VanzatorProduse> vanzatorProduseList;


public VanzatorProduseList(Activity context, List<VanzatorProduse> vanzatorProduseList){
    super(context, R.layout.list_produse_vanzator, vanzatorProduseList);
    this.context = context;
    selectedListItemsIds = new SparseBooleanArray();
    this.vanzatorProduseList = vanzatorProduseList;
}

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    LayoutInflater inflater = context.getLayoutInflater();

    View listViewItem = inflater.inflate(R.layout.list_produse_vanzator, null, true);

    TextView textViewProdus1 = (TextView) listViewItem.findViewById(R.id.textViewProdus1);
    TextView textViewPret1 = (TextView) listViewItem.findViewById(R.id.textViewPret1);
    final TextView textViewCantitate1 = (TextView) listViewItem.findViewById(R.id.textViewCantitate1);

    final VanzatorProduse vanzatorProduse = vanzatorProduseList.get(position);

    textViewProdus1.setText(vanzatorProduse.getProdus());
    textViewPret1.setText(vanzatorProduse.getPret());


    textViewCantitate1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // custom dialog
            final Dialog dialog = new Dialog(context);
            dialog.setContentView(R.layout.dialog_alert);
            dialog.setTitle("Alege Canitatea");

            // set the custom dialog components - text, image and button
            final Button dialogBtn = (Button) dialog.findViewById(R.id.dialog_btn);
            final ElegantNumberButton elegantNumberButton = (ElegantNumberButton) dialog.findViewById(R.id.elegantNumberButton);

            // if button is clicked, close the custom dialog
            dialogBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                String num = elegantNumberButton.getNumber();
                vanzatorProduseList.add(num);
                    dialog.dismiss();

                }
            });

            dialog.show();
        }
    });

    return listViewItem;
}
'add(com.dev.darius.neglije.Vanzator.ListaProduse.VanzatorProduse)' in 'java.util.List' cannot be applied to '(java.lang.String)'
错误:

public class VanzatorProduseList extends ArrayAdapter<VanzatorProduse> {

private Activity context;
private SparseBooleanArray selectedListItemsIds;
private List<VanzatorProduse> vanzatorProduseList;


public VanzatorProduseList(Activity context, List<VanzatorProduse> vanzatorProduseList){
    super(context, R.layout.list_produse_vanzator, vanzatorProduseList);
    this.context = context;
    selectedListItemsIds = new SparseBooleanArray();
    this.vanzatorProduseList = vanzatorProduseList;
}

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    LayoutInflater inflater = context.getLayoutInflater();

    View listViewItem = inflater.inflate(R.layout.list_produse_vanzator, null, true);

    TextView textViewProdus1 = (TextView) listViewItem.findViewById(R.id.textViewProdus1);
    TextView textViewPret1 = (TextView) listViewItem.findViewById(R.id.textViewPret1);
    final TextView textViewCantitate1 = (TextView) listViewItem.findViewById(R.id.textViewCantitate1);

    final VanzatorProduse vanzatorProduse = vanzatorProduseList.get(position);

    textViewProdus1.setText(vanzatorProduse.getProdus());
    textViewPret1.setText(vanzatorProduse.getPret());


    textViewCantitate1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // custom dialog
            final Dialog dialog = new Dialog(context);
            dialog.setContentView(R.layout.dialog_alert);
            dialog.setTitle("Alege Canitatea");

            // set the custom dialog components - text, image and button
            final Button dialogBtn = (Button) dialog.findViewById(R.id.dialog_btn);
            final ElegantNumberButton elegantNumberButton = (ElegantNumberButton) dialog.findViewById(R.id.elegantNumberButton);

            // if button is clicked, close the custom dialog
            dialogBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                String num = elegantNumberButton.getNumber();
                vanzatorProduseList.add(num);
                    dialog.dismiss();

                }
            });

            dialog.show();
        }
    });

    return listViewItem;
}
'add(com.dev.darius.neglije.Vanzator.ListaProduse.VanzatorProduse)' in 'java.util.List' cannot be applied to '(java.lang.String)'
这里我被卡住了,我想在名为
textviewcontitate1
textviewcontitate1中显示


希望您理解。

您正在尝试将
字符串
类型添加到
列表vanzatorProduseList
中。只能将
VanzatorProduse
类型添加到
vanzatorProduseList
列表中。因此,问题的原因是:

String num = elegantNumberButton.getNumber();
vanzatorProduseList.add(num);
在代码中有以下行:

final VanzatorProduse vanzatorProduse = vanzatorProduseList.get(position);

textViewProdus1.setText(vanzatorProduse.getProdus());
textViewPret1.setText(vanzatorProduse.getPret());
因此,您可以将
num
值添加到
vanzatorProduse.setProdus(num)
或任何其他适当字段中,然后将其添加到列表中:

vanzatorProduseList.add(vanzatorProduse);

您正在尝试将
字符串
类型添加到
列表vanzatorProduseList
中。只能将
VanzatorProduse
类型添加到
vanzatorProduseList
列表中。因此,问题的原因是:

String num = elegantNumberButton.getNumber();
vanzatorProduseList.add(num);
在代码中有以下行:

final VanzatorProduse vanzatorProduse = vanzatorProduseList.get(position);

textViewProdus1.setText(vanzatorProduse.getProdus());
textViewPret1.setText(vanzatorProduse.getPret());
因此,您可以将
num
值添加到
vanzatorProduse.setProdus(num)
或任何其他适当字段中,然后将其添加到列表中:

vanzatorProduseList.add(vanzatorProduse);

如@jibrahim在之前的回答中所述:

您正在尝试将字符串类型添加到列表vanzatorProduseList中。只能将VanzatorProduse类型添加到vanzatorProduseList列表中。因此,问题的原因是:

String num = elegantNumberButton.getNumber();
vanzatorProduseList.add(num);
您需要这样做创建自定义类的对象并为其赋值

但是您的自定义调用应该有方法来解决这种类型的问题


编辑:不要忘记调用notifyDataSetChanged()方法来刷新列表

,如@jibrahim在前面的回答中所述:

您正在尝试将字符串类型添加到列表vanzatorProduseList中。只能将VanzatorProduse类型添加到vanzatorProduseList列表中。因此,问题的原因是:

String num = elegantNumberButton.getNumber();
vanzatorProduseList.add(num);
您需要这样做创建自定义类的对象并为其赋值

但是您的自定义调用应该有方法来解决这种类型的问题


编辑:不要忘记调用notifyDataSetChanged()方法来刷新列表

您正试图在
VanzatorProduse
元素的
列表中添加
字符串
。它无法工作,您必须向该列表添加一个
VanzatorProduse
对象。您正试图在
VanzatorProduse
元素的
列表中添加一个
字符串。它无法工作,您必须向该列表添加一个
VanzatorProduse
对象—您不能只添加它。您必须将此信息放入
VanzatorProduse
对象中,然后将此对象添加到list@pleftsure和@Clau应该知道将
num
值分配到
VanzatorProduse
的确切位置,您不能只添加它。您必须将此信息放入
VanzatorProduse
对象中,然后将此对象添加到list@pleftsure和@Clau应该知道将
num
值分配到
VanzatorProduse
的确切位置。您还应该调用notifyDataSetChanged()来刷新列表视图。对不起,我是java新手。。但是从这里开始,如何在我的TetxView(textviewcantitate)中显示结果?像这些文本视图(textviewprodust,textviewpret)一样,您只需在关闭
textviewcantitate.setText(String.valueOf(num))
中执行即可;但是,如果我没有记错,您要求更新列表,可以通过调用
yourListAdapter.notifyDataSetChanged()
轻松完成。您还应该调用notifyDataSetChanged()来刷新列表视图。对不起,我是java新手。。但是从这里开始,如何在我的TetxView(textviewcantitate)中显示结果?像这些文本视图(textviewprodust,textviewpret)一样,您只需在关闭
textviewcantitate.setText(String.valueOf(num))
中执行即可;但是,如果我没有记错,您要求更新列表,可以通过调用
yourListAdapter.notifyDataSetChanged()