I want to display the connected ssid and ip address when the activity starts. It contais an image view (for title, because i'm not using the action bar) and 4 text view (ssid label, ssid value, ipaddr label, and ipaddr value)
I've tested the codes for obtaining the ssid and the ipaddr and they worked well. The problem is I can't display them into the TextView.
In this code, there is no error, but when the activity start, the program crash, or stop working.
Here is my java code:
import android.app.Activity;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
public class ConnectionInfoActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView ssid = (TextView) findViewById (R.id.ssid);
TextView ip = (TextView) findViewById (R.id.ipaddr);
ssid.setText(getSsid());
ip.setText(getIpAddr());
setContentView(R.layout.activity_connection_info);
}
// Get the connected network SSID
private String getSsid() {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = null;
ssid = wifiInfo.getSSID();
return ssid;
}
// Get the network IP Address
private String getIpAddr() {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ip = wifiInfo.getIpAddress();
String ipString = null;
ipString = String.format(
"%d.%d.%d.%d",
(ip & 0xff),
(ip >> 8 & 0xff),
(ip >> 16 & 0xff),
(ip >> 24 & 0xff));
return ipString;
}
}
And the layout xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/coninfo_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical" >
<ImageView
android:id="@+id/title_conInfo"
android:layout_width="fill_parent"
android:layout_height="44.5dp"
android:src="@drawable/header_coninfo" />
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="20sp"
android:text="SSID" />
<TextView
android:id="@+id/ssid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="20sp"
android:text="" />
</TableRow>
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="20sp"
android:text="IP Address" />
<TextView
android:id="@+id/ipaddr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="20sp"
android:text="" />
</TableRow>
</TableLayout>
Set the Text of Android TextView Following is another way to set the text of textview control programmatically in activity file using setText() method.
In Android, the most common way to show a text is by TextView element. The whole text in the TextView is easy to make clickable implementing the onClick attribute or by setting an onClickListener to the TextView.
You are setting the content view after you are finding the views. You should set the content view before.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_connection_info);
TextView ssid = (TextView) findViewById (R.id.ssid);
TextView ip = (TextView) findViewById (R.id.ipaddr);
ssid.setText(getSsid());
ip.setText(getIpAddr());
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With