值从 edittext 传递到变量
Values are passing from edittext to veriables
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/sourceET"
android:hint="Source City"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/destinationET"
android:hint="Destination City"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:id="@+id/searchBtn"
android:text="Search" />
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webview" />
</LinearLayout>
这是xml
public class MainActivity extends AppCompatActivity {
WebView webView;
EditText sourceCity,destinationCity;
Button searchBtn;
String url = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sourceCity = findViewById(R.id.sourceET);
destinationCity = findViewById(R.id.destinationET);
searchBtn = findViewById(R.id.searchBtn);
webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
String source = sourceCity.getText().toString();
String dest = destinationCity.getText().toString();
url = "https://www.google.com/maps/dir/"+source+"/"+dest;
searchBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webView.loadUrl(url);
}
});
}
}
这是java
我在网络中创建了搜索视图 view.I 我正在使用 google 映射 url 并连接两个存储编辑文本值但值未从编辑文本传递到可验证值的变量没有通过我正在尝试找到 problem.It 没有显示任何 error.How 来修复它。
Because you need to initialize this variables to the editText values
within the onclick() of the button.
public class MainActivity extends AppCompatActivity {
WebView webView;
EditText sourceCity,destinationCity;
Button searchBtn;
String url = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sourceCity = findViewById(R.id.sourceET);
destinationCity = findViewById(R.id.destinationET);
searchBtn = findViewById(R.id.searchBtn);
webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
searchBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String source = sourceCity.getText().toString();
String dest = destinationCity.getText().toString();
url = "https://www.google.com/maps/dir/"+source+"/"+dest;
webView.loadUrl(url);
}
});
}
}
使用上面的代码块获得所需的结果。
这与生命周期事件有关。您在输入任何数据之前初始化变量。只要编辑文本发生更改,您就可以更新变量。使用抽象 class afterTextChanged
您可以使用 here 中描述的文本观察器。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/sourceET"
android:hint="Source City"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/destinationET"
android:hint="Destination City"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:id="@+id/searchBtn"
android:text="Search" />
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webview" />
</LinearLayout>
这是xml
public class MainActivity extends AppCompatActivity {
WebView webView;
EditText sourceCity,destinationCity;
Button searchBtn;
String url = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sourceCity = findViewById(R.id.sourceET);
destinationCity = findViewById(R.id.destinationET);
searchBtn = findViewById(R.id.searchBtn);
webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
String source = sourceCity.getText().toString();
String dest = destinationCity.getText().toString();
url = "https://www.google.com/maps/dir/"+source+"/"+dest;
searchBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webView.loadUrl(url);
}
});
}
}
这是java
我在网络中创建了搜索视图 view.I 我正在使用 google 映射 url 并连接两个存储编辑文本值但值未从编辑文本传递到可验证值的变量没有通过我正在尝试找到 problem.It 没有显示任何 error.How 来修复它。
Because you need to initialize this variables to the editText values within the onclick() of the button.
public class MainActivity extends AppCompatActivity {
WebView webView;
EditText sourceCity,destinationCity;
Button searchBtn;
String url = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sourceCity = findViewById(R.id.sourceET);
destinationCity = findViewById(R.id.destinationET);
searchBtn = findViewById(R.id.searchBtn);
webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
searchBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String source = sourceCity.getText().toString();
String dest = destinationCity.getText().toString();
url = "https://www.google.com/maps/dir/"+source+"/"+dest;
webView.loadUrl(url);
}
});
}
}
使用上面的代码块获得所需的结果。
这与生命周期事件有关。您在输入任何数据之前初始化变量。只要编辑文本发生更改,您就可以更新变量。使用抽象 class afterTextChanged
您可以使用 here 中描述的文本观察器。