Шубин_942 (1232972), страница 6
Текст из файла (страница 6)
pDialog.setMessage("Создание записи...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
//Создание записи
protected String doInBackground(String... args) {
String typeoff = typeof;
String street = inputStreet.getSelectedItem().toString();
String number = inputNumber.getText().toString();
String rooms = inputRooms.getSelectedItem().toString();
String square = inputSquare.getText().toString();
String floors = inputFloors.getText().toString();
String floor = inputFloor.getSelectedItem().toString();
String typehome = inputTypeHome.getSelectedItem().toString();
String ipoteka = inputIpoteka;
String price = inputPrice.getText().toString();
String owner = inputOwner.getText().toString();
String ownerphone = inputPhoneOwner.getText().toString();
String photo = inputPhoto;
String login = log;
// Заполняем параметры
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("typeoff", typeoff));
params.add(new BasicNameValuePair("street", street));
params.add(new BasicNameValuePair("number", number));
params.add(new BasicNameValuePair("rooms", rooms));
params.add(new BasicNameValuePair("square", square));
params.add(new BasicNameValuePair("floors", floors));
params.add(new BasicNameValuePair("floor", floor));
params.add(new BasicNameValuePair("typehome", typehome));
params.add(new BasicNameValuePair("ipoteka", ipoteka));
params.add(new BasicNameValuePair("price", price));
params.add(new BasicNameValuePair("owner", owner));
params.add(new BasicNameValuePair("ownerphone", ownerphone));
params.add(new BasicNameValuePair("photo", photo));
params.add(new BasicNameValuePair("login", login));
// получаем JSON объект
JSONObject json = jsonParser.makeHttpRequest(url_create_product, "POST", params);
Log.d("Create Response", json.toString());
try {
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// запись успешно создана
Intent i = new Intent(getApplicationContext(), AllProductsActivity.class);
startActivity(i);
// закрываем это окно
finish();
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
ПРИЛОЖЕНИЕ Б
Функция получения списка всех записей в базе данных
class LoadAllProducts extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(AllHomes.this);
pDialog.setMessage("Загрузка данных. Подождите...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
/**
* Получаем все записи из БД
* */
protected String doInBackground(String... args) {
// Будет хранить параметры
List<NameValuePair> params = new ArrayList<NameValuePair>();
// получаем JSON строк с URL
String url_all_products = “http://mydip.esy.es/homes/get_all_products.php";
JSONObject json_hom = jParser.makeHttpRequest(url_all_products, "GET", params);
Log.d("All data: ", json_hom.toString());
try {
// Получаем SUCCESS тег для проверки статуса ответа сервера
int success = json_hom.getInt(TAG_SUCCESS);
if (success == 1) {
// запись найдена
// Получаем массив из таблицы
data = json_hom.getJSONArray(TAG_HOMES1);
// перебор всех записей
for (int i = 0; i < data.length(); i++) {
JSONObject c = data.getJSONObject(i);
// Сохраняем каждый json элемент в переменную
String id = c.getString(TAG_PID);
String street = c.getString(TAG_STREET);
String number = c.getString(TAG_NUMBER);
String price = c.getString(TAG_PRICE);
String login_h = c.getString(TAG_LOGIN);
if (login_h.equals(login)) {
// Создаем новый HashMap
HashMap<String, String> map = new HashMap<String, String>();
// добавляем каждый елемент в HashMap ключ => значение
map.put(TAG_PID, id);
map.put(TAG_STREET, street);
map.put(TAG_NUMBER, number);
map.put(TAG_PRICE, price);
// добавляем HashList в ArrayList
DataList.add(map);
}
}
} else {
// запись не найдена
// Запускаем Add New Product Activity
Intent i = new Intent(getApplicationContext(),
NewProductActivity.class);
// Закрытие всех предыдущие activities
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
//После завершения фоновой задачи закрываем прогресс диалог
protected void onPostExecute(String file_url) {
// закрываем прогресс диалог после получение всех записей
pDialog.dismiss();
// обновляем UI форму в фоновом потоке
runOnUiThread(new Runnable() {
public void run() {
* Обновляем распарсенные JSON данные в ListView
ListAdapter adapter = new SimpleAdapter(
AllHomes.this, DataList,
R.layout.list_item, new String[] { TAG_PID,
TAG_STREET, TAG_NUMBER, TAG_PRICE},
new int[] { R.id.pid, R.id.name, R.id.number, R.id.price1 });
// обновляем listview
setListAdapter(adapter);
}
});
}
}
ПРИЛОЖЕНИЕ В
Функция получения детальных данных о выбранной из списка записи в базе данных
class GetProductDetails extends AsyncTask<String, String, String> {
/**
* Перед началом показать в фоновом потоке прогресс диалог
**/
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(EditProductActivity.this);
pDialog.setMessage("Loading product details. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
/**
* Получение детальной информации о записи в фоновом режиме
**/
protected String doInBackground(String[] params) {
// обновляем UI форму
runOnUiThread(new Runnable() {
public void run() {
// проверяем статус success тега
int success;
try {
// Список параметров
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("pid", pid));
// получаем запись по HTTP запросу
JSONObject json = jsonParser.makeHttpRequest(url_product_detials, "GET", params);
Log.d("Single Product Details", json.toString());
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// Успешно получена детальная информация о записи
JSONArray homeObj = json.getJSONArray(TAG_HOMES1);
// получаем первый объект с JSON Array
JSONObject homes = homeObj.getJSONObject(0);
// продукт с pid найден
// Edit Text
txtNumber = (EditText) findViewById(R.id.inputNumber);
txtRooms = (EditText) findViewById(R.id.inputRooms);
txtSquare = (EditText) findViewById(R.id.inputSquare);
txtFloors = (EditText) findViewById(R.id.inputFloors);
txtFloor = (EditText) findViewById(R.id.inputFloor);
txtTypehome = (EditText) findViewById(R.id.inputTypehome);
Ipoteka = (CheckBox) findViewById(R.id.checkBox);
txtPrice = (EditText) findViewById(R.id.inputPrice);
txtOwner = (EditText) findViewById(R.id.inputOwner);
txtOwnerPhone = (EditText) findViewById(R.id.inputOwnerPhone);
// показываем данные о продукте в EditText
txtNumber.setText(homes.getString(TAG_NUMBER));
txtRooms.setText(homes.getString(TAG_ROOMS));
txtSquare.setText(homes.getString(TAG_SQUARE));
txtFloors.setText(homes.getString(TAG_FLOORS));
txtFloor.setText(homes.getString(TAG_FLOOR));
txtTypehome.setText(homes.getString(TAG_TYPEHOME));
txtIpoteka = homes.getString(TAG_IPOTEKA);
txtPrice.setText(homes.getString(TAG_PRICE));
txtOwner.setText(homes.getString(TAG_OWNER)); txtOwnePhone.setText(homes.getString(TAG_OWNERPHONE));
if ((txtIpoteka.equals("1"))) Ipoteka.setChecked(true); else Ipoteka.setChecked(false);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
return null;
}
/**
* После завершения фоновой задачи закрываем диалог прогресс
protected void onPostExecute(String file_url) {
// закрываем диалог прогресс
pDialog.dismiss();
}
}
ПРИЛОЖЕНИЕ Г
Обновление и изменение данных выбранной записи
class SaveProductDetails extends AsyncTask<String, String, String> {
/**
* Перед началом показываем в фоновом потоке прогресс диалог
**/
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(EditProductActivity.this);
pDialog.setMessage("Saving product ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
/**
* Сохраняем данные
**/
protected String doInBackground(String[] args) {
// получаем обновленные данные с EditTexts
String number = txtNumber.getText().toString();
String rooms = txtRooms.getText().toString();
String square = txtSquare.getText().toString();
String floors = txtFloors.getText().toString();
String floor = txtFloor.getText().toString();
String typehome = txtTypehome.getText().toString();
String ipoteka = txtIpoteka;
String price = txtPrice.getText().toString();
String owner = txtOwner.getText().toString();
String ownerphone = txtOwnerPhone.getText().toString();
String photo = txtphoto;
// формируем параметры
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(TAG_PID, pid));
params.add(new BasicNameValuePair(TAG_NUMBER, number));
params.add(new BasicNameValuePair(TAG_ROOMS, rooms));
params.add(new BasicNameValuePair(TAG_SQUARE, square));
params.add(new BasicNameValuePair(TAG_FLOORS, floors));
params.add(new BasicNameValuePair(TAG_FLOOR, floor));
params.add(new BasicNameValuePair(TAG_TYPEHOME, typehome));
params.add(new BasicNameValuePair(TAG_IPOTEKA, ipoteka));
params.add(new BasicNameValuePair(TAG_PRICE, price));
params.add(new BasicNameValuePair(TAG_OWNER, owner));
params.add(new BasicNameValuePair(TAG_OWNERPHONE, ownerphone));
params.add(new BasicNameValuePair(TAG_PHOTO, photo));
// отправляем измененные данные через http запрос
JSONObject json = jsonParser.makeHttpRequest(url_update_product, "POST", params);
// проверяем json success тег
try {
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// запись удачно обновлена
startActivity(new Intent(EditProductActivity.this, AllProductsActivity.class));
/*
Intent i = getIntent();
// отправляем результирующий код 100 чтобы сообщить об обновлении записи
setResult(100, i);
finish();*/
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
/**
* После окончания закрываем прогресс диалог
**/
protected void onPostExecute(String file_url) {
// закрываем прогресс диалог
pDialog.dismiss();
}
}















