很簡單。使用FrameLayout。
框架佈局是Android開發人員用於組織視圖控件的最簡單和最有效的佈局類型之一。它們比其他一些佈局的使用頻率低,因爲它們通常只用於顯示一個視圖或重疊的視圖。框架佈局通常用作容器佈局,因爲它通常只有一個子視圖(通常是另一個佈局,用於組織多個視圖)。
例如:
<FrameLayout android:id="@+id/list_and_empty_message_container"
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:orientation="vertical">
<!-- List view -->
<ListView android:id="@+id/main_list_view"
android:background="@android:color/transparent"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:cacheColorHint="#00000000" android:layout_gravity="top"
android:divider="#D7C3F8" android:dividerHeight="2dip" />
<TextView android:text="No info Found." android:id="@+id/list_empty_txt"
android:layout_height="wrap_content" android:textSize="16.1sp"
android:textStyle="bold" android:typeface="monospace"
android:layout_marginLeft="5dip" android:layout_gravity="center_vertical"
android:gravity="center" android:textColor="#000000"
android:layout_width="fill_parent" android:visibility="gone" />
</FrameLayout>
和計數您的數據適配器。如果這是空的,則將textview設置爲可見,否則將可見性設置爲消失。
下面放代碼在你的onCreate(),
TextView emptyText = (TextView) findViewById(R.id.list_empty_txt);;
if(Your_data_array.size() <= 0)
emptyText.setVisibility(View.VISIBLE);
else
emptyText.setVisibility(View.GONE);
它將工作。
* _ __ _ __ _ __ _ _Updated_ _ __ _ __ _ __ *
採取ListActivity類一看,有一個如果您的數據源爲空,則會設置空信息。
public void onContentChanged() {
super.onContentChanged();
View emptyView = findViewById(com.android.internal.R.id.empty);
mList = (ListView)findViewById(com.android.internal.R.id.list);
if (mList == null) {
throw new RuntimeException(
"Your content must have a ListView whose id attribute is " +
"'android.R.id.list'");
}
//Take a look here
if (emptyView != null) {
mList.setEmptyView(emptyView);
}
mList.setOnItemClickListener(mOnClickListener);
if (mFinishedStart) {
setListAdapter(mAdapter);
}
mHandler.post(mRequestFocus);
mFinishedStart = true;
}
我會幫你解決你的問題。
編碼愉快:)
檢查我的更新答案是什麼我嘗試使用setEmptyView和它的作品。 –
定義一切都在這裏? –
我可以向你保證,它只是設置適配器,一些觸摸和點擊事件監聽器,只是設置。 – Brian