gpt4 book ai didi

java - 如何使用在该项目内创建的按钮删除 ListView 项目。

转载 作者:行者123 更新时间:2023-12-01 13:09:31 26 4
gpt4 key购买 nike

我有一个带有 ListView 的类。 ListView 使用pattern.xml 文件填充,其中有一个按钮。当调用该类时,将为 ListView 中的每个项目复制 Button。现在我想要的是访问这些按钮以从列表中删除相应的项目。那么我该怎么做呢?请帮我解决这个问题。该类的代码如下所示。

public class Secondscreen extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secondscreen);
ListView lv= (ListView) findViewById(R.id.listView1);


final Button thirdBtn = (Button) findViewById(R.id.third);


final Controller aController = (Controller) getApplicationContext();

final int cartSize = aController.getCart().getCartSize();

final ArrayList<Listitem> arrayList=new ArrayList<Listitem>();


BaseAdapter adapter= new BaseAdapter(){

@Override
public int getCount() {
// TODO Auto-generated method stub
return arrayList.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return arrayList.get(position);
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

LayoutInflater inflater=(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@Override
public View getView(final int position, View view, ViewGroup viewgroup) {
if (view == null) {
view=inflater.inflate(R.layout.pattern, null);
}
TextView tv=(TextView) view.findViewById(R.id.nameview);
TextView tv2=(TextView) view.findViewById(R.id.pdesc);
TextView tv3=(TextView) view.findViewById(R.id.priceView);



tv.setText(arrayList.get(position).getName());
tv2.setText(""+arrayList.get(position).getPrice());
tv3.setText(arrayList.get(position).getDesc());
return view;
}

};
adapter.notifyDataSetChanged();
lv.setAdapter(adapter);


if(cartSize >0)
{

for(int i=0;i<cartSize;i++)
{

String pName = aController.getCart().getProducts(i).getProductName();
int pPrice = aController.getCart().getProducts(i).getProductPrice();
String pDisc = aController.getCart().getProducts(i).getProductDesc();

Listitem item=new Listitem(pName, pPrice, pDisc);
arrayList.add(item);
adapter.notifyDataSetChanged();

}

}
}
}

最佳答案

您必须指定 ButtonOnClickListener 并从 BaseAdapter 中的 arrayList 中删除 Item,然后调用 notifyDataSetChanged();

        @Override
public View getView(final int position, View view, ViewGroup viewgroup) {
if (view == null) {
view=inflater.inflate(R.layout.pattern, null);
}
Button button = (Button) view.findViewById(R.id.button);
//button.setTag(position);
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
//Integer position = (Integer)view.getTag();
arrayList.remove(position);
adapter.notifyDataSetChanged();
}
});
// Your other views...
return view;
}

关于java - 如何使用在该项目内创建的按钮删除 ListView 项目。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22996191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com