Moh*_*lah 73 android listview adapter
我有点问题ListView.如何清除ListView内容,知道它有自定义适配器?
edit- 自定义适配器类扩展BaseAdapter,它看起来像这样:
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class MyAdapter extends BaseAdapter {
private Activity activity;
private String[] data;
private static LayoutInflater inflater = null;
public MyAdapter(Activity a, String[] str) {
activity = a;
data = str;
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public static class ViewHolder {
public TextView text;
}
@Override
public int getCount() {
return data.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
View v = view;
ViewHolder holder;
if (v == null) {
v = inflater.inflate(R.layout.rowa, null);
holder = new ViewHolder();
holder.text= v.findViewById(R.id.dexter);
v.setTag(holder);
} else {
holder = v.getTag();
}
holder.text.setText(data[position]);
return v;
}
}
Run Code Online (Sandbox Code Playgroud)
mik*_*enz 194
简单写一下
listView.setAdapter(null);
Run Code Online (Sandbox Code Playgroud)
Mar*_*ues 54
我猜你把List或数组传递给了适配器.如果你保留这个添加的集合的实例,你可以做一个
collection.clear();
listview.getAdapter().notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
只有当您使用集合实例化适配器并且它是相同的实例时,这才会起作用.
此外,根据您扩展的适配器,您可能无法执行此操作.SimpleAdapter用于静态数据,因此在创建后无法更新.
PS.并非所有Adapters都有clear()方法.ArrayAdapter可以,但ListAdapter或SimpleAdapter没有
这很简单.首先你应该清除你的收藏,并在清除列表后像这样的代码:
yourCollection.clear();
setListAdapter(null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
150288 次 |
| 最近记录: |