我喜欢在 listView 中没有项目时显示 textView,而当 listView 中有项目时 textView 不会显示。我的问题是即使listView中有项目,textView仍然会在短时间内显示,然后将项目加载到listView中。那么,当listView中有item时,如何让TextView不可见呢?
这是代码:
public void onCreate(Bundle savedInstancesState){
super.onCreate(savedInstancesState);
setContentView(R.layout.list_screen);
user = getIntent().getExtras().getString("user");
Log.d("dg",user);
getList();
lv = (ListView) findViewById(android.R.id.list);
emptyText = (TextView)findViewById(android.R.id.empty);
lv.setEmptyView(emptyText);
}
public void getList(){
new Thread(){
public void run(){
try{
httpclient = new DefaultHttpClient();
httppost = new HttpPost("http://www.kryptoquest.com/tracker/friendlist.php");
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("Username", user));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = httpclient.execute(httppost);
is = response.getEntity().getContent();
}catch(Exception e){
Log.e("log_tag", "Error:"+e.toString());
}
//convert response to string
try{
reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
Log.d("test",sb.toString());
is.close();
result = sb.toString();
result = result.substring(0, result.length()-1);
// Log.d("result",result);
friend = new ArrayList<String>(Arrays.asList(result.split("[*]")));
Log.d("size",String.valueOf(friend.size()));
runOnUiThread(new Runnable()
{
public void run(){
adapter = new ArrayAdapter<String>(ThirdActivity.this,android.R.layout.simple_list_item_1,friend);
setListAdapter(adapter);
}
});
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
}
}.start();
}
list_screen.xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<TextView android:id="@+id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/no_friend"
android:gravity="center_vertical|center_horizontal"/>
</LinearLayout>