我只是试图制作一个应用程序来检查我的互联网连接是否打开。如果没有互联网连接,则它将显示一个单独的LinearLayout
,其中包含完整的match_parent
,但无法正常显示。任何帮助将不胜感激。
<RelativeLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="match_parent">
<TextView
android:background="#c6c6c9"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/error"
android:textAlignment="center"
android:onClick="onClick"
android:gravity="center"
android:visibility="gone"
android:text="connect to Internet"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
public boolean isOnline() {
ConnectivityManager conMgr = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conMgr.getActiveNetworkInfo();
if (netInfo == null || !netInfo.isConnected() || !netInfo.isAvailable()) {
Toast.makeText(this, "Take a Hotspot Dude...", Toast.LENGTH_SHORT).show();
r1.setVisibility(View.VISIBLE);
return false;
}
return true;
}
答案 0 :(得分:0)
如果要在确定连接状态之后在布局之间进行切换,请考虑完全使用两个不同的布局,并将ContentView设置为适合当前条件的布局。
public boolean isOnline() {
ConnectivityManager conMgr = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conMgr.getActiveNetworkInfo();
if (netInfo == null || !netInfo.isConnected() || !netInfo.isAvailable()) {
Toast.makeText(this, "Take a Hotspot Dude...", Toast.LENGTH_SHORT).show();
r1.setVisibility(View.VISIBLE);
setContentView(R.layout.network_doesnt_exist);
return false;
} else {
setContentView(R.layout.network_exists)
}
或者,如果您希望在布局本身中的项目之间切换(可能会有些混乱),请将可见性状态设置为“消失”
textView.setVisibility(View.GONE);
将其用于您想要使之完全从布局中消失的任何项目,这意味着它们不仅被隐藏,而且不包含在任何layout_weight或此类分布中。
我希望这有助于回答您的问题!