无论如何,请在那里,我可以从其他布局获取ID。我刚开始使用Android Studio,而我的应用程序却一直停下来。
我的web.java:
package com.example.managemyrouter;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class web extends AppCompatActivity {
public WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web);
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
EditText ipa = (EditText) findViewById (R.id.ip1);
Integer vv = Integer.parseInt(ipa.getText().toString)
EditText ipb = (EditText) findViewById (R.id.ip2);
Integer va = Integer.parseInt(ipb.getText().toString)
String ipAddress = ("http://192.168." + vv + "." + va);
WebView.loadUrl(ipAddress + "/html/home.html");
}
}
我的activity_web.xml:
<?xml version="1.0" encoding="utf-8"?>
...
<WebView
...
</WebView>
我的userIp.java:
package com.example.managemyrouter;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class userIp extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView (R.layout.activity_user_ip);
Button confirm = (Button) findViewById (R.id.confirm);
confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(userIp.this, webn.class));
}
});
}
}
我的activity_user_ip.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:Android="http://schemas.android.com/apk/res/Android"
xmlns:app="..."
xmlns:tools=..."
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".userIp">
<TextView
.../>
<TextView
.../>
<EditText
.../>
<TextView
.../>
<EditText
.../>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/confirm"
.../>
</androidx.constraintlayout.widget.ConstraintLayout>
现在的问题是变量 ip1 和 ip2 不在我的activity_web.xml中,而是在我的activity_user_ip中,因为我希望用户在第一个输入ipAddress加载之前的活动。我试图在web.java中引用这些变量,但是当我运行该应用程序时,它停止了,并且在Logcat中向我显示了
Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.managemyrouter.web}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference at...
请问如何在web.java中将内容视图设置为2种布局? 请帮忙,因为我被困???
答案 0 :(得分:0)
我认为您不应该获得除活动之外的其他xml的编辑文本引用。 您应该按意图从userIp活动发送ipa和ipb编辑文本的数据,并在myweb.java活动中接收它。
Intent intent = new Intent (userIp.this,myweb.class);
intent.putExtra(“key1”, ipaStringData);
intent.putExtra(“key2”, ipbStringData);
startActivity(intent);
在您的myWeb.java中,onCreate / onCreateView:
String ipaStr = getIntent().getStringExtra("key1");
String ipbStr = getIntent().getStringExtra("key2");