【发布时间】:2012-11-04 13:32:06
【问题描述】:
花了很多时间寻找方法(通过谷歌和这个网站),但我找不到正确的代码来写入 TextView 自己的 android ip 地址。
我尝试了很多代码,但没有一个运行。
获取android的IP地址并将其放入TextView的正确方法是什么?
谢谢。
public class MainActivity extends Activity {
private TextView textView1;
private String tag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView1 =(TextView)findViewById(R.id.textView1);
getLocalIpAddress();
String ip = getLocalIpAddress();
textView1.setText("IP:"+ip);
}
public String getLocalIpAddress()
{
try
{
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)
{
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();)
{
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress())
{
return inetAddress.getHostAddress().toString();
}
}
}
}
catch (SocketException ex)
{
Log.e(tag, ex.toString());
}
return "";
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="19dp"
android:text="TextView" />
【问题讨论】:
-
您在问 2 个不同的问题。您应该将其拆分为 2 个问题:1)如何获取本地 IP? 2) 如何在 TextView 中显示一些字符串?那么,你到底需要什么?另外,如果您发布您已经尝试过的内容,那就太好了。
-
明白了。 2个问题:1)如何获取本地IP地址2)如何将本地IP地址输入字符串?谢谢
-
所以,应该是两个不同的问题:)。
-
首先,
getLocalIpAddress();行没用。其次,查看R.id.textView1是什么?它是在activity_main.xml中声明的吗?如果不是,那么它是在哪里声明的?你也可以粘贴它(activity_main.xml)。 -
另外,您似乎没有为
tag赋值...声明它是这样的:private final String tag = "MainActivity";,但这不是主要问题,因为程序在另一行,如你所说。
标签: android networking textview ip