简体   繁体   中英

Text to url parameter android app

I trying to do an app to query orders of my company. It's the layout: https://ibb.co/mh8EOH

It's my code:

 #public class Orders extends AppCompatActivity { EditText query; // declare here @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_Orders); Button btn = (Button)findViewById(R.id.button); EditText et = (EditText)findViewById(R.id.editTextId1); String query = et.getText().toString(); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(getApplicationContext(), Webview.class); i.putExtra("url", "https://mysite/query?order="+query); startActivity(i); } }); } }

So... in android studio is showed "Variale 'query' is accessed from within inner class needs to be declared final"

What's wrong? I wanna use input text to pass parameter to url.

Just Declare your String query variable as final String query;

or make it global like this

public class Orders extends AppCompatActivity {
    EditText et; 
    String url="";
    Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_Orders);

         btn = (Button)findViewById(R.id.button);

        et  = (EditText)findViewById(R.id.editTextId1);


        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                url = et.getText().toString();

                if(!TextUtils.isEmpty(url)){
                    Intent i = new Intent(getApplicationContext(), Webview.class);
                    i.putExtra("url", "https://mysite/query?order="+url);
                    startActivity(i);
                    }

            }
        });

    }

So you need to get edittext value inside onclick listener like below :-

        et  = (EditText)findViewById(R.id.editTextId1);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String query = et.getText().toString();
                if(!query.isEmpty()) { 
                     Intent i = new Intent(getApplicationContext(), Webview.class);
                     i.putExtra("url", "https://mysite/query?order="+url);
                     startActivity(i);
                }
            }
        });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM