매우 간단합니다. 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