值从 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 中描述的文本观察器。