永发信息网

listview清空的问题

答案:2  悬赏:0  手机版
解决时间 2021-03-02 20:47
  • 提问者网友:疯孩纸
  • 2021-03-02 10:47
我在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 nameValuePairs = new ArrayList();

//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
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();
}
}
});
}
}
最佳答案
  • 五星知识达人网友:鱼芗
  • 2021-03-02 11:07
没做过手机开发,不过思路很清晰,在调用装载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楼网友:荒野風
  • 2021-03-02 12:22
在添加了新内容之后把数据源设置成null就好了。然后再在显示之前把数据源添加到list里面,或者用set也行,这样就不会有重复数据了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯