タブ ビューの下に表示される Facebook アプリのように、インターネットに接続していないというメッセージを表示するにはどうすればよいですか。
質問する
2484 次
1 に答える
5
XML ファイルでこれを設計し、次のように可視性を非可視に設定できます。
<RelativeLayout
android:id="@+id/relativelayout_connection"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:alpha="0.8"
android:background="@android:color/black" >
<TextView
android:id="@+id/textView_noInternetConnection"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
android:text="No Internet Connection."
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/white" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView_noInternetConnection"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/textView_noInternetConnection"
android:src="@drawable/warrning" />
</RelativeLayout>
コードでは、ブロードキャスト レシーバーを次のように使用します。
private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
boolean noConnectivity = intent.getBooleanExtra(
ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
/*String reason = intent
.getStringExtra(ConnectivityManager.EXTRA_REASON);*/
boolean isFailover = intent.getBooleanExtra(
ConnectivityManager.EXTRA_IS_FAILOVER, false);
@SuppressWarnings("deprecation")
NetworkInfo currentNetworkInfo = (NetworkInfo) intent
.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
// NetworkInfo otherNetworkInfo = (NetworkInfo)
// intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
if (noConnectivity){
if(mRelativeLayout != null)
mRelativeLayout.setVisibility(View.VISIBLE);
}
else if (currentNetworkInfo.isConnected()) {
mRelativeLayout.setVisibility(View.GONE);
} else if (isFailover) {
Toast.makeText(getApplicationContext(), "Failover",
Toast.LENGTH_LONG).show();
} else {
mRelativeLayout.setVisibility(View.GONE);
}
}
};
于 2013-07-15T15:00:10.420 に答える