我有一个increment system
,我希望onClick
在DialogAlert
的列中保存ListView Adapter
的值。
这是我的Adapter
:
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;
}
以下是我尝试的但是我收到了错误,不知道下一步该做什么:
String num = elegantNumberButton.getNumber();
vanzatorProduseList.add(num);
错误:
'add(com.dev.darius.neglije.Vanzator.ListaProduse.VanzatorProduse)' in 'java.util.List' cannot be applied to '(java.lang.String)'
此处我被卡住了,我希望在名为TextView
的{{1}}中显示。
希望你明白。
答案 0 :(得分:1)
您正尝试将String
类型添加到List<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);
答案 1 :(得分:1)
正如@jibrahim先前的回答所述:
您正在尝试将String类型添加到List vanzatorProduseList中。您只能将VanzatorProduse类型添加到vanzatorProduseList列表中。所以,问题的原因是:
String num = elegantNumberButton.getNumber();
vanzatorProduseList.add(num);
您需要执行以下操作创建自定义类的对象并为其分配值:
String num = elegantNumberButton.getNumber();
VanzatorProduse numVanProObject = new VanzatorProduse();
numVanProObject .setNumber(num );
vanzatorProduseList.add(numVanProObject );
但是您的自定义调用应该有方法来解决此类问题
编辑:不要忘记调用notifyDataSetChanged()方法刷新列表
答案 2 :(得分:0)
VanzatorProduse producse = new VanzatorProduse();
producse.setProdus("add value here")
vanzatorProduseList.add(producse);