有没有一种方法可以将2 setContentView添加到活动中

时间:2020-05-02 20:25:38

标签: android xml android-studio layout webview

无论如何,请在那里,我可以从其他布局获取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种布局? 请帮忙,因为我被困???

1 个答案:

答案 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");