Как я могу объявить идентификатор JSON глобально и передать его в запрос с помощью глобальной переменной в android studio?
Здравствуйте друзья, мне нужно передать идентификатор всего бренда динамически в качестве параметра al при добавлении автомобиля в мою основную деятельность с помощью BasicNameValuePair,чтобы он динамически менялся в соответствии с выбором пользователя в спиннере и показывал вывод добавленного автомобиля в другой деятельности, пожалуйста, помогите мне.
При этом в этом посте я приложил свой ответ API, который содержит идентификаторы брендов для всех 5 брендов. Я также приложил свою основную деятельность.
Что я уже пробовал:
Мой ответ API:
{
"статус": 1,
"данные": [
{
"id": 1, - - - - > идентификатор бренда
"имя": "Ауди",
"код": "Ауди",
"изображение": "",
"статус": "1",
"created_at": "2016-09-27 00:07:38",
"updated_at": "2016-09-27 00:07:38"
},
{
"id": 2-----> идентификатор бренда
"название": "Bravian Motor Works",
"код": "BMW",
"изображение": "",
"статус": "1",
"created_at": "2016-09-27 00:07:58",
"updated_at": "2016-09-27 00:07:58"
},
{
"id": 3, - - - - >идентификатор бренда
"имя": "АВ Вольво",
"код": "Вольво",
"изображение": "",
"статус": "1",
"created_at": "2016-09-27 00:08:36",
"updated_at": "2016-09-27 00:08:36"
},
{
"удостоверение личности": 4,-----> идентификатор бренда
"название": "Ford Motor Company",
"код": "Форд",
"изображение": "",
"статус": "1",
"created_at": "2016-09-27 00:11:51",
"updated_at": "2016-09-27 00:11:51"
},
{
"удостоверение личности": 5,-----> идентификатор бренда
"имя": "Марути Сузуки",
"код": "Марути",
"изображение": "",
"статус": "1",
"created_at": "2016-09-27 00:12:14",
"updated_at": "2016-09-27 00:12:14"
}
],
"msg": "успех",
"информация": "список данных"
}
И мне нужно объявить все идентификаторы бренда под одной глобальной переменной и мне нужно передать эту глобальную переменную в качестве значения параметра для бренда при добавлении автомобиля с помощью BasicNameValuePair как показано ниже:
Моя Основная Деятельность:
public class MainActivity расширяет AppCompatActivity {
частная строковый тег = в MainActivity.класс.getSimpleName();
ArrayList и Л;строка> У brandListArray = новый ArrayList и Л;строка&ГТ;();
ArrayList и Л;строка> У modelListArray = новый ArrayList и Л;строка&ГТ;();
Кнопка addVehicleBtn;
EditText AddVehicle_Regno, kmscovered;
Радиобуттон бензиновый, дизельный, полностью заряженный, базовая модель;
TextView textView8, textViewkms;
Spinner AddspinnerMake, AddspinnerModel, AddspinnerYear;
частная статическая строка url = "http://garage.kaptastech.mobi/api/5k/master/vehicle";
частные строковые значения[] ;
ArrayList< string> brandListId;
ArrayList< string & gt; modelListId;
String brandid;
String modelId;
ArrayList и Л;частности, в<строка, строка&ГТ;&ГТ; addVehiclelist;
Строка jsonStr;
Строки Регно fuelType, Марка, год, Модель, вариант;
/**
* Внимание:это было автоматически сгенерировано для реализации API индексации приложений.
* См. https://g.co/AppIndexing/AndroidStudio для получения дополнительной информации.
*/
частный клиент GoogleApiClient;
@Ручная коррекция
protected void onCreate(Bundle savedInstanceState) {
super. onCreate(savedInstanceState);
setContentView(R. layout.activity_main);
brandListArray = новый ArrayList & lt;string>();
brandListId = новый ArrayList & lt;string>();
modelListArray = новый ArrayList & lt;string>();
modelListId = новый ArrayList & lt;string>();
addVehiclelist = новый ArrayList и Л;частности, в<строка, строка&ГТ;&ГТ;();
petrol = (RadioButton) findViewById(R. id. petrol);
Diesel = (RadioButton) findViewById(R. id. diesel);
полностью заряжен = (переключатели) команду findViewById(Р. ИД.полностью заряжен);
Basicmodel = (RadioButton) findViewById(R. id. basicmodel);
addVehicleBtn = (кнопка) findViewById(R. id. addVehicleBtn);
AddVehicle_Regno = (EditText) findViewById (R. id. AddVehicle_Regno);
kmscovered = (полей EditText) findViewById, чтобы найти(ИД Р..kmsCovered);
textView8 = (виджет TextView) findViewById, чтобы найти(Р. ИД.textView8);
textViewkms = (виджет TextView) findViewById, чтобы найти(ИД Р..textViewkms);
AddspinnerMake = (Spinner) findViewById(R. id. AddspinnerMake);
AddspinnerModel = (Spinner) findViewById(R. id. AddspinnerModel);
AddspinnerYear = (Spinner) findViewById(R. id. AddspinnerYear);
new Getbrands (). execute();
бензин. setOnCheckedChangeListener (new CompoundButton.OnCheckedChangeListener() {
@Ручная коррекция
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
если (бензин.этот флажок установлен()) {
fuelType = petrol.getText (). toString();
}
}
});
Diesel. setOnCheckedChangeListener (new CompoundButton.OnCheckedChangeListener() {
@Ручная коррекция
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
если (дизель.этот флажок установлен()) {
fuelType = Diesel.getText (). toString();
}
}
});
AddspinnerMake. setOnItemSelectedListener(новый AdapterView.OnItemSelectedListener() {
@Ручная коррекция
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
Brand = AddspinnerMake. getSelectedItem (). toString();
если (позиция > 0) {
brandid = brandListId. get (позиция).toString();
// * * Get Model execute api//
new Getmodels (). execute();
}
}
@Ручная коррекция
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
AddspinnerYear. setOnItemSelectedListener(новый AdapterView.OnItemSelectedListener() {
@Ручная коррекция
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Year = AddspinnerYear. getSelectedItem (). toString();
}
@Ручная коррекция
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
AddspinnerModel. setOnItemSelectedListener(новый AdapterView.OnItemSelectedListener() {
@Ручная коррекция
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
Model = AddspinnerModel. getSelectedItem (). toString();
если (позиция > 0) {
модэлид = modelListId.вам(должность).toString();
}
}
@Ручная коррекция
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
Basicmodel. setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Ручная коррекция
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
если (Basicmodel.этот флажок установлен()) {
variant = Basicmodel. getText (). toString();
}
}
});
fullloaded. setOnCheckedChangeListener (new CompoundButton.OnCheckedChangeListener() {
@Ручная коррекция
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
если (полностью заряжен.этот флажок установлен()) {
вариант = полностью заряжен.то gettext().метод toString();
}
}
});
addVehicleBtn. setOnClickListener(новый вид.OnClickListener() {
@Ручная коррекция
public void onClick (View view) {
Regno = AddVehicle_Regno. getText (). toString();
new GetVehicle (). execute();
Намерение намерение = новое намерение(в MainActivity.это, AddVehicle.class);
startActivity (намерение);
}
});
// Внимание:это было автоматически сгенерировано для реализации API индексации приложений.
// См. https://g.co/AppIndexing/AndroidStudio для получения дополнительной информации.
клиент = новый GoogleApiClient.Строитель(этот).addApi(AppIndex.API-интерфейс).построить();
}
/**
* Внимание:это было автоматически сгенерировано для реализации API индексации приложений.
* См. https://g.co/AppIndexing/AndroidStudio для получения дополнительной информации.
*/
публичное действие getIndexApiAction() {
Вещь объект = новая вещь.Строитель()
. setName ("Главная страница") / / TODO: определение заголовка для отображаемого содержимого.
// TODO: убедитесь, что этот автоматически сгенерированный URL-адрес верен.
. setUrl(Uri. parse ("http: / / [ENTER-YOUR-URL-HERE]"))
.строить();
верните новое действие.Строитель (Экшн.TYPE_VIEW)
. setObject(объект)
.setActionStatus(действий.STATUS_TYPE_COMPLETED)
.строить();
}
@Ручная коррекция
общественного недействительными метод onStart() {
супер.методы onStart();
// Внимание:это было автоматически сгенерировано для реализации API индексации приложений.
// См. https://g.co/AppIndexing/AndroidStudio для получения дополнительной информации.
клиента.подключить();
Аппиндекс.AppIndexApi. start(клиент, getIndexApiAction());
}
@Ручная коррекция
общественного недействительными вызовом onStop() {
супер.то onStop();
// Внимание:это было автоматически сгенерировано для реализации API индексации приложений.
// См. https://g.co/AppIndexing/AndroidStudio для получения дополнительной информации.
Аппиндекс.AppIndexApi. end(клиент, getIndexApiAction());
клиента.отсоединить();
}
частная GetVehicle класс расширяет AsyncTask&ЛТ;пустота, пустота, пустота&ГТ; {
@Ручная коррекция
охраняемых недействительными onPreExecute() {
супер.onPreExecute();
}
@Ручная коррекция
защищенный Void doInBackground(Void... arg0) {
HttpClient client = новый DefaultHttpClient();
Протоколы HttpPost протоколы HttpPost = новые протоколы HttpPost("http://garage.kaptastech.mobi/api/5k/master/vehicle");
Список<namevaluepair&ГТ; nameValuePair = новый ArrayList и Л;namevaluepair&ГТ;(7);
nameValuePair. add(new BasicNameValuePair ("user_id", " 5"));
nameValuePair. add(new BasicNameValuePair ("registration_no", Regno));
nameValuePair.добавить(новый BasicNameValuePair("наименование","1"));
nameValuePair. add(new BasicNameValuePair ("model", " 1"));
nameValuePair. add(new BasicNameValuePair ("type", " 2"));
nameValuePair. add(new BasicNameValuePair ("variant", " 2"));
nameValuePair.добавить(новый BasicNameValuePair("год", год));
пробовать {
httpPost. setEntity (новый UrlEncodedFormEntity(nameValuePair));
} catch (UnsupportedEncodingException e) {
// запись ошибки в журнал
е.печатные();
}
// Создание HTTP-запроса
пробовать {
HttpResponse response = client. execute(httpPost);
// запись ответа в журнал
Log. d ("Ответ от url:", response.toString());
jsonStr = EntityUtils.toString(response. getEntity());
} catch (IOException e) {
е.печатные();
}
пробовать {
/*HttpConnection ht = новый HttpConnection();
ХТ.getVehicle();*/
Jsonobject object = новый JSONObject(jsonStr);
Автомобиль JSONArray = объект.getJSONArray("данные");
для (int i = 0; i < Vehicle.length (); i++) {
JSONObject c = Vehicle. getJSONObject(i);
String Regno = c. getString ("registration_no");
String brand = c. getString ("бренд");
String model = c. getString ("модель");
String fueltype = c. getString ("тип");
String variant = c. getString ("variant");
Хранилище HashMap и Л;строка, строка&ГТ; вл = новый HashMap и Л;строка, строка&ГТ;();
Вл. put ("registration_no", Regno);
Вл.пут("наименование", наименование);
Вл. put ("модель", model);
Vl. put("type", fueltype);
Вл.пут("вариант", вариант);
addVehiclelist.добавить(вл);
значения = новая строка[]{
"Регистрационный Номер:" + Regno,
"Бренд:" + бренд,
"Модель:" + модель,
"Тип:" + тип топлива,
"Вариант:" + вариант,
};
}
} catch (JSONException e) {
е.печатные();
}
возвращать null;
}
@Ручная коррекция
protected void onPostExecute(Void aVoid) {
супер.onPostExecute реализовывались(не);
}
}
частная Getbrands класс расширяет AsyncTask&ЛТ;пустота, пустота, пустота&ГТ; {
@Ручная коррекция
охраняемых недействительными onPreExecute() {
супер.onPreExecute();
}
@Ручная коррекция
защищенный Void doInBackground(Void... arg0) {
HttpClient client = новый DefaultHttpClient();
HttpGet httpGet = новый HttpGet("http://garage.kaptastech.mobi/api/5k/master/brand");
пробовать {
HttpResponse response = client. execute(httpGet);
// запись ответа в журнал
Log. d ("Ответ от url:", response.toString());
jsonStr = EntityUtils.toString(response. getEntity());
} catch (IOException e) {
е.печатные();
}
пробовать {
HttpConnection ht = новый HttpConnection();
ХТ.getbrand();
Jsonobject object = новый JSONObject(jsonStr);
BrandArray JSONArray = объект.getJSONArray("данные");
brandListArray.понятно();
brandListId.понятно();
brandListArray. add ("выберите бренд");
brandListId. add("0");
for (int i = 0; i < brandArray. length (); i++) {
JSONObject gb = brandArray. getJSONObject(i);
brandListArray. add(gb. getString ("name"));
brandListId.добавить(ГБ.и getString("идентификатор"));
String[] brandStringArray = новая строка[brandListArray. size()];
brandStringArray = brandListArray.toArray(brandStringArray);
for (int i1 = 0; i1 < brandStringArray. length; i1++) {
Войти.д("строка", (строку) brandStringArray[и1]);
}
}
} catch (JSONException e) {
е.печатные();
}
возвращать null;
}
protected void onPostExecute(результат Void) {
super. onPostExecute (результат);
Адаптер массива в<строка&ГТ; переходник = новый адаптер массива в<строка&ГТ;(в MainActivity.это, Android.Р.макет.simple_spinner_item, brandListArray);
adapter.setDropDownViewResource(android. R. layout.simple_spinner_dropdown_item);
AddspinnerMake. setAdapter(адаптер);
}
}
частный класс Getmodels расширяет AsyncTask< Void, Void, Void> {
@Ручная коррекция
охраняемых недействительными onPreExecute() {
супер.onPreExecute();
}
@Ручная коррекция
защищенный Void doInBackground(Void... arg0) {
HttpClient client = новый DefaultHttpClient();
HttpGet httpGet = новый HttpGet("http://garage.kaptastech.mobi/api/5k/master/models/" + brandid);
пробовать {
HttpResponse response = client. execute(httpGet);
// запись ответа в журнал
Log. d ("Ответ от url:", response.toString());
jsonStr = EntityUtils.toString(response. getEntity());
} catch (IOException e) {
е.печатные();
}
пробовать {
HttpConnection ht = новый HttpConnection();
ХТ.getmodel();
Jsonobject object = новый JSONObject(jsonStr);
ModelArray JSONArray = объект.getJSONArray("данные");
modelListArray.понятно();
modelListId.понятно();
modelListArray. add ("выберите модель");
modelListId. add("0");
for (int i = 0; i < modelArray. length (); i++) {
JSONObject gm = modelArray. getJSONObject(i);
modelListArray. add(gm. getString ("name"));
modelListId.добавить(ГМ.и getString("идентификатор"));
String[] modelStringArray = новая строка[modelListArray. size()];
modelStringArray = modelListArray.toArray(modelStringArray);
for (int i2 = 0; i2 < modelStringArray. length; i2++) {
Войти.д("строка", (строку) modelStringArray[И2]);
}
}
} catch (JSONException e) {
е.печатные();
}
возвращать null;
}
protected void onPostExecute(результат Void) {
super. onPostExecute (результат);
Адаптер массива в<строка&ГТ; переходник = новый адаптер массива в<строка&ГТ;(в MainActivity.это, Android.Р.макет.simple_spinner_dropdown_item, modelListArray);
AddspinnerModel. setAdapter(адаптер);
}
}
}
Как вы видите в моем приведенном выше коде, я передал только одно значение для бренда, так что он показывает только один идентификатор бренда (1) в моем выводе, но мне нужно, чтобы все 5 идентификаторов бренда передавались динамически, чтобы пользователь мог выбрать нужный через spinner, чтобы он показывал, что выбрал пользователь.
Короче говоря, мне нужно объявить все 5 идентификаторов бренда в глобальной переменной,и мне нужно передать глобальную переменную в качестве параметра для добавления бренда с помощью basicnamevaluepair,
Извините за долгое объяснение., пожалуйста, предложите мне хорошее решение, заранее спасибо.
Richard MacCutchan
Почему вы используете namevaluepair, а не правильно определенный класс для хранения всех деталей каждого автомобиля?
Arun Theandroider
Привет, Ричард, я только что опубликовал только добавленную часть автомобиля, я не опубликовал свой полный класс java, Если вам нужно, позвольте мне опубликовать и это тоже
Пожалуйста, найдите мою основную активность в моем отредактированном посте
Richard MacCutchan
Я повторяю, почему вы не используете правильный класс?
Arun Theandroider
ладно, Ричард, скажи мне, пожалуйста,как я могу изменить этот класс на правильный?
Richard MacCutchan
Вы хотите сказать, что не знаете, как создавать классы на Java?
Кроме того, Пожалуйста, не просто сбрасывайте весь свой код в неформатированный список. Используйте теги<pre & gt; и публикуйте только тот код, который имеет отношение к вашему запросу.