#java #android #android-edittext
#java #Android #android-edittext
Вопрос:
Как следует из названия, когда я запускаю это приложение, WebView подключается к «https://null «вместо строки, которую я ввел в EditText, я не могу понять проблему
Активность 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
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();
}
}
Ответ №1:
Вам нужно получать значение из вашего, EditText
когда вы нажимаете кнопку, а не внутри onCreate
.
Также вы не используете то же самое 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);
}
});
Ответ №2:
Вы вызываете неправильный intent и с 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);
}
});
}
}
Ответ №3:
Вы поместили инструкцию в метод ‘onCreate()’. Поместите его внутри кнопки ‘.OnClickListener’.
Ответ №4:
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);
}
});
}
}