listview清空的问题

我在SQLite 中添加新内容之后, 刷新ListView显示,却发现原来的内容没有消失,而是新的内容接在其后。。。
如何在更新之前 清空原有的ListView内容 我的代码如下 帮我 写一下吧我在网上看的 方法 但我不会用在其的的代码里

public class AndroidTestActivity extends Activity {
JSONArray jArray;
String result = null;
InputStream is = null;
StringBuilder sb=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
EditText tv = (EditText) findViewById(R.id.editView);
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

//http get
try{
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://192.168.1.132/test.php");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");

String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//paring data
int ct_id;
String ct_name;
try{

jArray = new JSONArray(result);
JSONObject json_data=null;
for(int i=0;i<jArray.length();i++){

json_data = jArray.getJSONObject(i);
ct_id=json_data.getInt("id");
ct_name=json_data.getString("name");
tv.append(ct_name);
}
}catch(JSONException e1){
// Toast.makeText(getBaseContext(), "No City Found" ,Toast.LENGTH_LONG).show();
} catch (ParseException e1) {
e1.printStackTrace();
}
}
});
}
}

没做过手机开发,不过思路很清晰,在调用装载listview之前先清空listview,如listview1.clear(),你只要找到调用listview的入口就解决了。比如:

下面这个计时器,每隔一段时间重新加载一次listview,把内容显示出来,InitListView()方法是装载listview的入口,那么在之前用listView1.Clear()将listview清空即可。其实方法很多啦。

void timer1_Tick(object sender, EventArgs e)
{
   listView1.Clear();
   InitListView();
   timer1.Enabled = true;
}

希望对你有帮助,有问题再追问,望采纳。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-08-25

虽然离你问这个很远了,估计你自己也找到方法了,不过还是纠正一下

其实LS的思路很对,做开发的就该这么想,但是Android中的ListView是没有clear()这个方法的,因此行不通。

一般的,对于要给ListView显示东西,都会使用一个List+Adapter的方案,数据就是List中一个一个item,用adapter进行填充。所以说这就简单了,因为List是有clear()方法的,直接找到ListVIew对应的List执行一次list.clear()就行了。

...
...
listView = this.findViewById(R.id.listView);
adapter = new TAdapter(Main.this);
list = getResult();
//以及其他初始化
...
...
//显示
adapter.bindData(list);
listView.setAdapter(adapter);
adapter.notifyDataSetChanged();
...
...
//清空
adapter.list.clear();      //或者list.clear();adapter.bindData(list);
adapter.notifyDataSetChanged();

如何清空android ListView控件的内容
1、清空listview的所有数据:将装载的数据集合比如list或者map等,clear后 adapter.notifyDataChangeListener.隐藏整个listview也是表面上实现了清空的效果(虽然是假的)2、清空某个item的内容 在getview方法中判断position的来清空对应item控件的内容显示 以上,欢迎交流 ...

求助高人 winform listView 控件的清空方法!如下:我加上 this.listView...
你说的是数据追加,就是想listView1里面追加数据,而当你执行这个方法前就会先执行this.listView1.Clear();把之前listView1里面的数据给清空了,所以就再追加不成功。当你注释this.listView1.Clear()之后,再次执行这个方法是就不会清空原来的listView1里面的数据。

怎么在listview中清除原数据
listView.setAdapter(null);\/\/清空之后,新数据貌似加不进来了。2、方法二:listAdapter.clear();\/\/没有clear方法需要在adapter容器中定义 \/\/清空数据列表 public void clear() { mContactsList.clear();notifyDataSetChanged();} PS:尝试了很多其它方法都不行,方法二可行。adapter.getCount();可以获...

VB中怎么清空listview中的东西
全部清空就用一个语句就行了,就用listview.clear这样就能把LISTVIEW控件中的内容全部清空了。

ListView怎么清空以前的内容
调用removeAllViewsInLayout(),清空以前的数据 list.removeAllViewsInLayout();

VB6.0 listview.listitems.clear没有效果
guest_list.ListItems.Clear 是有效果的 不信的话 你可以单独放到第二个按钮事件中去 guests_Click()点击后 点击第二个按钮执行clear看列表是否被清除 至于你说的重复问题 就得问你自己row(0) 数组里的内容了

如何清空android ListView控件的内容
第一种方法:listView.setAdapter(null);第二种方法:listAdapter.clear();listAdapter.notifyDataSetChanged() ;

wpf里如何删除ListView里的所有信息!
一般像这样的集合都会绑定一个ObserableCollection<T>的集合吧 只要清空这个集合就可以了

VB中怎么清空listview中的东西
示例代码如下:(1)新建一个VB6工程 (2)在Form1窗体布置一个ListView和一个Command (3)窗体代码 Option Explicit Private Sub Command1_Click()With ListView1 ' 清空所有项目 .ListItems.Clear ' 清空表头 .ColumnHeaders.Clear End With End Sub Private Sub Form_Load()Dim itemX As ListItem...

急··· C#ListView刷新
那要看你是怎么刷新的了,如果是把listview清空重新添加item的话,就只能先用一个临时变量存储当前选中行的一些特征,刷新后遍历listview找到这个行再选中 如果不清空直接在原items基础上更改的话,就不用你操作了,它自己会保持选中状态的

相似回答