Я разрабатываю приложение для Android для поиска работы, здесь PHP в качестве серверной части. Список вакансий, получаемый с сервера и отображаемый в виде карты, работает хорошо. Здесь я хочу выполнить поиск по местоположению и названию должности. Итак, как передать мое местоположение и должность из поисковой деятельности в деятельность по работе.
private void searchjob() {
final String title = jobtitle.getText().toString().trim();
final String location = city.getSelectedItem().toString().trim();
Intent intent = new Intent(HomeActivity.this, MainActivity.class);
intent.putExtra(title,1);
intent.putExtra(location,2);
startActivity(intent);
overridePendingTransition(R.anim.slide_in, R.anim.slide_out);
}
Это мой Java-класс Download Card.
public class DownloaderCard extends AsyncTask<Void, Integer, String> {
Context c;
String address;
SwipeDeck swipeDeck;
ProgressDialog pd;
String url = "";
public DownloaderCard(Context c, String address, SwipeDeck swipeDeck) {
this.c = c;
this.address = address;
this.swipeDeck = swipeDeck;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
pd = new ProgressDialog(c);
pd.setTitle("Please Wait");
pd.setMessage("Loading....");
pd.show();
}
@Override
protected String doInBackground(Void... params) {
String data = downloadData();
return data;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
pd.dismiss();
if (s!=null){
//Toast.makeText(c, s, Toast.LENGTH_LONG).show();
ParserCard p = new ParserCard(c, s, swipeDeck);
p.execute();
}else {
Toast.makeText(c, "Unable to download data from downloader", Toast.LENGTH_LONG).show();
}
}
private String downloadData(){
InputStream is = null;
String line = null;
try {
URL url = new URL(address);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
is = new BufferedInputStream(connection.getInputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuffer sb = new StringBuffer();
if (br != null){
while ((line = br.readLine()) != null){
sb.append(line+"\n");
}
}else {
return null;
}
return sb.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null){
try {
is.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
}
Это моя JobActivity.
String urlData = "https://www.joblist.php";
final DownloaderCard dl = new DownloaderCard(MainActivity.this,urlData , cardStack);
dl.execute();
cardStack.setEventCallback(new SwipeDeck.SwipeEventCallback() {
@Override
public void cardSwipedLeft(int position) {
// Log.i("MainActivity", "card was swiped left, position in adapter: " + position);
}
@Override
public void cardSwipedRight(int position) {
// Log.i("MainActivity", "card was swiped right, position in adapter: " + position);
}
@Override
public void cardsDepleted() {
// Log.i("MainActivity", "no more cards");
}
@Override
public void cardActionDown() {
// Log.i(TAG, "cardActionDown");
}
@Override
public void cardActionUp() {
// Log.i, "cardActionUp");
}
});
cardStack.setLeftImage(R.id.left_image);
cardStack.setRightImage(R.id.right_image);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cardStack.swipeTopCardLeft(180);
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cardStack.swipeTopCardRight(180);
}
});
}
да. но как передать это PHP-код




Вот метод, который я использую для отправки информации для входа на сервер PHP ... обновите ее, чтобы она соответствовала вашим целям.
public String LoginOnService(String url,String email,String pass){
InputStream inputStream = null;
String result = "";
try {
// 1. create HttpClient
HttpClient httpclient = new DefaultHttpClient();
// 2. make POST request to the given URL
HttpPost httpPost = new HttpPost(url+"?email = "+email+"&password = "+pass);
// 3. Execute POST request to the given URL
HttpResponse httpResponse = httpclient.execute(httpPost);
if (httpResponse != null){
result = EntityUtils.toString(httpResponse.getEntity());
}else{
result = "Did not work!";
}
} catch (Exception e) {
Log.d("InputStream", e.getLocalizedMessage());
}
// 11. return result
return result;
}
Как видите, я передаю String, но если вы хотите отправлять данные как JSON, вам также могут пригодиться эти комментарии. но на шаге 2 передайте только URL-адрес HttpPost httpPost = new HttpPost(url);
public String LoginOnService(String url,String email,String pass){
InputStream inputStream = null;
String result = "";
try {
// 1. create HttpClient
HttpClient httpclient = new DefaultHttpClient();
// 2. make POST request to the given URL
HttpPost httpPost = new HttpPost(url+"?email = "+email+"&password = "+pass);
// String json = YOUR_JSON_STRING;
// 3. build jsonObject
// JSONObject jsonObject = new JSONObject();
// jsonObject.accumulate("Email", user.getEmail());
// jsonObject.accumulate("Password", user.getPassword());
// 4. convert JSONObject to JSON to String
// json = jsonObject.toString();
// ** Alternative way to convert Person object to JSON string usin Jackson Lib
// ObjectMapper mapper = new ObjectMapper();
// json = mapper.writeValueAsString(person);
// 5. set json to StringEntity
// StringEntity se = new StringEntity(json);
// 6. set httpPost Entity
// httpPost.setEntity(se);
// 7. Set some headers to inform server about the type of the content
// httpPost.setHeader("Accept", "application/json");
// httpPost.setHeader("Content-type", "application/json");
// 8. Execute POST request to the given URL
HttpResponse httpResponse = httpclient.execute(httpPost);
// 9. receive response as inputStream
// inputStream = httpResponse.getEntity().getContent();
// 10. convert inputstream to string
if (httpResponse != null)
result = EntityUtils.toString(httpResponse.getEntity());
else
result = "Did not work!";
} catch (Exception e) {
Log.d("InputStream", e.getLocalizedMessage());
}
// 11. return result
return result;
}
Я пробовал, но это. не работает. пожалуйста, скажите мне, как передать поисковый запрос, чтобы передать URL
Я все больше запутываюсь, что вы имеете в виду под поисковый запрос? вы имеете в виду запрос, который выполняет поиск на PHP server? проверьте эту ссылку Просмотр поиска Android с PHP и MySQL
в моем домашнем задании есть 2 текста редактирования, местоположение и название должности и одна кнопка, я хочу передать значения заголовка и местоположения в URL-адрес задания. alot.ae/api/joblist.php - это мой URL-адрес, так как я могу передать значение в URL-адрес php
попробуйте это в своем браузере, я передам значения место расположения и титул с помощью предоставленного вами url, alot.ae/api/joblist.php?location=London&tittle=programmer должен вернуть результат поиска, если вы правильно обрабатываете его в своем PHP.
да. его рабочий, но. я не знаю как передать это андроид
На самом деле я не понимаю, почему это не сработало в Android, предположим, что вы передали значения с URL-адресом, он должен вернуть результат, содержащий нужные вам данные. Предлагаю вам переписать свой вопрос, пояснить, как вы это делали в комментариях, так что кто-нибудь может увидеть и помочь. удачи.
проблема с передачей значений в url. из редактировать текст
Иршад! в своем последнем комментарии вы говорите, что не можете использовать getText() из editTtext, а это String location = editText.getText();, это действительно проблема? Я уверен, что это не так.
Рад узнать. если ответ стоит того, чтобы поделиться им ... опубликуйте его как ответ.
You should use Volley https://github.com/google/volley для звонка Http Requests, это упростит вашу работу,
Вот пример: -
final String url = "https://www.joblist.php?title=MyJobTitle&location=London";
// prepare the Request
JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response) {
// display response
Log.d("Response", response.toString());
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
Log.d("Error.Response", response);
}
}
);
// add it to the RequestQueue
queue.add(getRequest);
final String title = jobtitle.getText().toString().trim();
final String location = city.getSelectedItem().toString().trim();
Intent intent = new Intent(HomeActivity.this, MainActivity.class);
intent.putExtra("job_title",title);
intent.putExtra("city",location);
в JobActivity
String myvalue= getIntent().getExtras("job_title");
String myvalue2= getIntent().getExtras("city");
PHP код
final String url = "https: //www.joblist.php? title =" + myvalue + "& location = " + myvalue2;
вы спросили, как передавать данные между двумя действиями, но вы уже передали данные здесь
intent.putExtra(title,1);. Что вы хотите сделать сейчас?