[英]EditText to String returns Null
As title says, when i execute this app, WebView connects to " https://null/ " insted of the string i put on the EditText, i cant figure out the problem 如标题所述,当我执行此应用程序时,WebView会连接到“ https:// null / ”,并插入我在EditText上放置的字符串,我无法找出问题所在
MainActivity activity MainActivity活动
public class MainActivity extends AppCompatActivity {
EditText web;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web = (EditText) findViewById(R.id.web);
String webstr = web.getText().toString();
Intent int2 = new Intent(MainActivity.this, WebView.class);
int2.putExtra("123", webstr);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), WebView.class);
v.getContext().startActivity(intent);
}
});
}
}
WebView Activity WebView活动
public class WebView extends AppCompatActivity {
private android.webkit.WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);
Intent intent = getIntent();
String web1 = intent.getStringExtra("123");
webView = findViewById(R.id.webview);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://" + web1);
Toast.makeText(WebView.this, "Connected", Toast.LENGTH_SHORT).show();
}
}
You need to get the value from your EditText
when you click the button, not within onCreate
. 您需要在单击按钮时从EditText
获取值,而不是在onCreate
。
Also you're not using the same Intent
, so you're not actually passing that value. 另外,您没有使用相同的Intent
,因此您实际上没有传递该值。
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), WebView.class);
String webstr = web.getText().toString();
intent.putExtra("123", webstr);
v.getContext().startActivity(intent);
}
});
You call wrong intent and with gettext at the wrong place here below you can see modified code 您调用错误的意图,并在下面的错误位置使用gettext,您可以看到修改后的代码
public class MainActivity extends AppCompatActivity {
EditText web;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web = (EditText) findViewById(R.id.web);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String webstr = web.getText().toString();
Intent int2 = new Intent(MainActivity.this, WebView.class);
int2.putExtra("123", webstr);
v.getContext().startActivity(int2);
}
});
}
}
You have placed the statement in 'onCreate()' method. 您已将语句放置在“ onCreate()”方法中。 Place it inside the 'Button.onClickListener'. 将其放在“ Button.onClickListener”中。
public class MainActivity extends AppCompatActivity {
EditText web;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web = (EditText) findViewById(R.id.web);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String webstr = web.getText().toString();
Intent intent = new Intent(MainActivity.this, WebView.class);
intent.putExtra("123", webstr);
MainActivity.this.startActivity(intent);
}
});
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.