在android中向listview动态插入列表项

在android中向listview动态插入列表项,android,listview,Android,Listview,朋友们,我对安卓系统还不熟悉,我自己也在学习。我正在创建invoice manager应用程序进行学习。这里的产品是由管理员添加的,工作正常。用户只有创建发票的权限。当用户进入“创建发票”活动时,他有一组用于添加项目的框架布局。当用户按下框架布局时,他会看到另一个活动,在该活动中,他可以在管理员添加的列表视图中找到所有列表项集以及产品价格。现在,当用户按下一个项目时,他将再次返回创建发票活动,并出现一个警报框,询问所需数量。当用户输入数量并单击OK按钮时,第一个列表项会按照我的要求正确显示。但当

朋友们,我对安卓系统还不熟悉,我自己也在学习。我正在创建invoice manager应用程序进行学习。这里的产品是由管理员添加的,工作正常。用户只有创建发票的权限。当用户进入“创建发票”活动时,他有一组用于添加项目的框架布局。当用户按下框架布局时,他会看到另一个活动,在该活动中,他可以在管理员添加的列表视图中找到所有列表项集以及产品价格。现在,当用户按下一个项目时,他将再次返回创建发票活动,并出现一个警报框,询问所需数量。当用户输入数量并单击OK按钮时,第一个列表项会按照我的要求正确显示。但当我添加第二项时,第一项会被替换。所以现在我的问题是如何解决这个问题。。伙计们,请帮帮我。你们发现的代码可能很傻,但我还在学习。提前谢谢

创建发票活动
将您在适配器中使用的项添加到列表中,并(在验证适配器不为null后)调用适配器对象上的notifyDataSetChanged()方法

将您在适配器中使用的项添加到列表中,并(在验证适配器不为null后)调用适配器对象上的notifyDataSetChanged()方法

创建发票活动

 //arraylist
    ArrayList<invoice_product_list> productList = new ArrayList<>();

     //customAdapter
 customAdapterInvoice = new custom_adapter_invoice 
(Create_invoice.this, productList);

            customAdapterInvoice.addProduct(products)
//数组列表
ArrayList productList=新的ArrayList();
//自定义适配器
CustomAdapterVoice=新的自定义适配器发票
(创建_invoice.this、productList);
customAdapterInvoice.addProduct(产品)
自定义适配器

public class custom_adapter_invoice extends ArrayAdapter <invoice_product_list> 
{
ArrayList<invoice_product_list> productList = new ArrayList<>();
public custom_adapter_invoice(Context context,   
ArrayList<invoice_product_list> product_details) {
super(context, R.layout.custom_row_invoice_item, product_details);
this.productList =product_details
}

public void addProduct(Product products
productList.add(products);
notifyDataSetChanged();
}


 ......
}
公共类自定义\u适配器\u扩展ArrayAdapter
{
ArrayList productList=新的ArrayList();
公共自定义\u适配器\u发票(上下文上下文,
ArrayList产品(详细信息){
超级(上下文、R.layout.custom\u row\u invoice\u item、product\u details);
this.productList=产品详细信息
}
公共产品(产品)
产品列表。添加(产品);
notifyDataSetChanged();
}
......
}

创建发票活动

 //arraylist
    ArrayList<invoice_product_list> productList = new ArrayList<>();

     //customAdapter
 customAdapterInvoice = new custom_adapter_invoice 
(Create_invoice.this, productList);

            customAdapterInvoice.addProduct(products)
//数组列表
ArrayList productList=新的ArrayList();
//自定义适配器
CustomAdapterVoice=新的自定义适配器发票
(创建_invoice.this、productList);
customAdapterInvoice.addProduct(产品)
自定义适配器

public class custom_adapter_invoice extends ArrayAdapter <invoice_product_list> 
{
ArrayList<invoice_product_list> productList = new ArrayList<>();
public custom_adapter_invoice(Context context,   
ArrayList<invoice_product_list> product_details) {
super(context, R.layout.custom_row_invoice_item, product_details);
this.productList =product_details
}

public void addProduct(Product products
productList.add(products);
notifyDataSetChanged();
}


 ......
}
公共类自定义\u适配器\u扩展ArrayAdapter
{
ArrayList productList=新的ArrayList();
公共自定义\u适配器\u发票(上下文上下文,
ArrayList产品(详细信息){
超级(上下文、R.layout.custom\u row\u invoice\u item、product\u details);
this.productList=产品详细信息
}
公共产品(产品)
产品列表。添加(产品);
notifyDataSetChanged();
}
......
}

不,它不会改变任何东西。如果您想要最新的工作方法,那么我更喜欢RecyclerView而不是自定义列表适配器。此链接非常适合RecyclerView


不,它不会改变任何东西。如果您想要最新的工作方法,那么我更喜欢RecyclerView而不是自定义列表适配器。此链接非常适合RecyclerView


谢谢你的回复兄弟..但事情仍然不起作用..我从一个星期以来一直在做同样的事情,但没有任何效果。我有一个问题,兄弟,活动之间的切换是否会影响列表视图..你能再次查看我的问题并找到问题…请..提前感谢…谢谢你的回复兄弟…但事情仍然不起作用..我从一个星期以来一直在做同样的事情,但什么都没有起作用.我有一个问题,兄弟,活动之间的切换是否会影响列表视图..你能再次查看我的问题并找到问题吗..请..提前谢谢..谢谢你的回复..我检查了上面的答案并适配器不为null,并且正在执行notifyDatasetChanged()。但是没有更改..它仍然在替换以前的列表项..甚至我更改了listView的背景颜色以查看是否发生了任何更改..没有更改..Plz帮助..感谢您的回复..我检查了上述答案,适配器不为null,并且notifyDatasetChanged()已更改正在执行。但没有更改..它仍在替换以前的列表项..甚至我更改了listView的背景颜色以查看是否有任何情况发生。没有更改..请提供帮助。。
 //arraylist
    ArrayList<invoice_product_list> productList = new ArrayList<>();

     //customAdapter
 customAdapterInvoice = new custom_adapter_invoice 
(Create_invoice.this, productList);

            customAdapterInvoice.addProduct(products)
public class custom_adapter_invoice extends ArrayAdapter <invoice_product_list> 
{
ArrayList<invoice_product_list> productList = new ArrayList<>();
public custom_adapter_invoice(Context context,   
ArrayList<invoice_product_list> product_details) {
super(context, R.layout.custom_row_invoice_item, product_details);
this.productList =product_details
}

public void addProduct(Product products
productList.add(products);
notifyDataSetChanged();
}


 ......
}