我正在使用Android工作室开发Android应用程序。
我有布局列表视图,这些布局中有按钮,其中一个是“关闭”。 当我点击布局编号n的“关闭”按钮时,我希望我的列表视图删除布局编号n。
类似于angular2中的“输出”标记,用于将布局的click事件传递给其父级。
我的listview适配器:
public class MyListViewAdapter extends ArrayAdapter<MyModel> {
public MyListViewAdapter(Context context, List<MyModel> models) {
super(context, 0, models);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.layout_for_my_component, parent, false);
}
convertView.findViewById(R.id.buttonClose).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//How to pass this event to my activity ?
}
});
return convertView;
}
}
在我的活动中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//blablabla before
listView = (ListView)findViewById(R.id.mylistview);
list_models = new ArrayList<MyModel>();
//Add some models
adapter = new CreditCardListViewAdapter(MyActivity.this, list_models);
listView.setAdapter(adapter);
//blablabla after
}
所以我希望在调用onClick()时,我从list_models中删除元素并更新适配器。
答案 0 :(得分:0)
在onClick
中使用此功能models.remove(position);
notifyDataSetChanged();
答案 1 :(得分:0)
我认为你应该使用在BaseAdapter中更先进和易用的BaseAdapter,你可以在列表项目中做任何事情,比如设置文本视图,图像视图等等。