gpt4 book ai didi

android - 如何动态设置文本到 TextView?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:05:39 25 4
gpt4 key购买 nike

我想在activity启动时显示连接的ssid和ip地址。它包含一个 ImageView (用于标题,因为我没有使用操作栏)和 4 个 TextView (ssid 标签、ssid 值、ipaddr 标签和 ipaddr 值)

我已经测试了获取 ssid 和 ipaddr 的代码,它们运行良好。问题是我无法将它们显示到 TextView 中。

在这段代码中,没有错误,但是当activity启动时,程序崩溃,或者停止工作。

这是我的java代码:

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;
}
}

和布局 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>

最佳答案

您在找到 View 后设置内容 View 。您应该先设置内容 View 。

@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());
}

关于android - 如何动态设置文本到 TextView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26366152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com