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.