Набор ToggleButton состояние из входящих данных JSON -- android поле с участием mysql поле с участием json поле с участием togglebutton пол Связанный проблема

Set ToggleButton status from incoming JSON data


0
vote

проблема

русский
<Р> Я пытаюсь следовать Android учебник , чтобы изменить базу данных MySQL данные из приложения Android. Я довольно новый для концепции JSON синтаксического разбора и я застрял при установке значения тумблеров в моем приложении список ракурсе в соответствии со значениями «статуса», полученных из базы данных через JSON. В моей базе данных у меня есть поле с именем «статус» в «устройствах» таблицы и ToggleButton связан с каждой строкой, полученной через JSON. Я хочу использовать забранные значения (0 или 1), чтобы установить свой связанный с ним тумблер в приложении к ON, если значение равно 1, и OFF, если полученное значение равно 0. Но я не знаю, как я могу добиться этого. < / р> <Р> Вот функция doInBackground от деятельности, которая показывает мой список ракурса:
 <код> protected String doInBackground(String... args) {         // Building Parameters         List<NameValuePair> params = new ArrayList<NameValuePair>();         // getting JSON string from URL         JSONObject json = jParser.makeHttpRequest(url_all_products, "GET", params);          // Check your log cat for JSON reponse         Log.d("All Products: ", json.toString());          try {             // Checking for SUCCESS TAG             int success = json.getInt(TAG_SUCCESS);              if (success == 1) {                 // products found                 // Getting Array of Products                 products = json.getJSONArray(TAG_PRODUCTS);                  // looping through All Products                 for (int i = 0; i < products.length(); i++) {                     JSONObject c = products.getJSONObject(i);                      // Storing each json item in variable                     String id = c.getString(TAG_PID);                     String name = c.getString(TAG_NAME);                     String status = c.getString(TAG_STATUS);                      // creating new HashMap                     HashMap<String, String> map = new HashMap<String, String>();                      // adding each child node to HashMap key => value                     map.put(TAG_PID, id);                     map.put(TAG_NAME, name);                     map.put(TAG_STATUS, status);                      // adding HashList to ArrayList                     productsList.add(map);                 }             } else {                 // no products found                 // Launch Add New product Activity                 Intent i = new Intent(getApplicationContext(),                         NewDeviceActivity.class);                 // Closing all previous activities                 i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);                 startActivity(i);             }         } catch (JSONException e) {             e.printStackTrace();         }          return null;     }      /**      * After completing background task Dismiss the progress dialog      * **/     protected void onPostExecute(String file_url) {         // dismiss the dialog after getting all products         pDialog.dismiss();         // updating UI from Background Thread         runOnUiThread(new Runnable() {             public void run() {                 /**                  * Updating parsed JSON data into ListView                  * */                 ListAdapter adapter = new SimpleAdapter(                         AllDevicesActivity.this, productsList,                         R.layout.list_item, new String[] { TAG_PID,                                 TAG_NAME, TAG_STATUS},                         new int[] { R.id.pid, R.id.name, R.id.status });                 // updating listview                 setListAdapter(adapter);             }         });      }   

Файл XML является:

 <код>     <?xml version="1.0" encoding="utf-8"?>     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:orientation="vertical" >      <!-- Product id (pid) - will be HIDDEN - used to pass to other activity -->     <TextView         android:id="@+id/pid"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:visibility="gone" />      <TextView         android:id="@+id/status"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:visibility="gone" />      <TextView         android:id="@+id/name"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:paddingTop="6dip"         android:paddingLeft="7dip"         android:textSize="17dip"         android:textStyle="bold" />      <ToggleButton         android:id="@+id/toggleButton1"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_alignParentRight="true"         android:layout_marginRight="7dp"         android:text="ToggleButton" />  </RelativeLayout>   
<Р> Значение (имя, ID и статус) принимаются только в порядке, я достиг до сих пор: Скриншот приложения после выполнения приведенного выше кода. <Р> Но я понятия не имею, как использовать полученные «статус» значение изменения, связанные с переключением каждого элемента списка ракурса. Я пытался определить ToggleButton в OnCreate метод следующим образом:
 <код> tb = (ToggleButton) findViewById(R.id.toggleButton1);   
<Р> А потом попробовал это в цикл метода doInBackground выше:
 <код> if (status == "1") {      tb.setChecked(true);            }   
<Р> Но приложение падает, если я могу это сделать, может быть, потому что я не знаю, где поставить связанный с ним код. Любая помощь в отношении этого ценится.

Спасибо!

Английский оригинал

I am trying to follow an Android tutorial to modify a MySQL database data from Android app. I am fairly new to the concept of JSON parsing and I am stuck at setting the values of toggles in my app's list-view according to the 'status' values received from database through JSON. In my database, I have a field named 'status' in table 'devices', and a ToggleButton is associated with each row received through JSON. I want to use the retrieved values (0 or 1) to set my associated toggle in the app to ON if the value is 1 and to OFF if the retrieved value is 0. But I don't know how I can achieve that.

Here's the doInBackground function from the activity that shows my list-view:

protected String doInBackground(String... args) {         // Building Parameters         List<NameValuePair> params = new ArrayList<NameValuePair>();         // getting JSON string from URL         JSONObject json = jParser.makeHttpRequest(url_all_products, "GET", params);          // Check your log cat for JSON reponse         Log.d("All Products: ", json.toString());          try {             // Checking for SUCCESS TAG             int success = json.getInt(TAG_SUCCESS);              if (success == 1) {                 // products found                 // Getting Array of Products                 products = json.getJSONArray(TAG_PRODUCTS);                  // looping through All Products                 for (int i = 0; i < products.length(); i++) {                     JSONObject c = products.getJSONObject(i);                      // Storing each json item in variable                     String id = c.getString(TAG_PID);                     String name = c.getString(TAG_NAME);                     String status = c.getString(TAG_STATUS);                      // creating new HashMap                     HashMap<String, String> map = new HashMap<String, String>();                      // adding each child node to HashMap key => value                     map.put(TAG_PID, id);                     map.put(TAG_NAME, name);                     map.put(TAG_STATUS, status);                      // adding HashList to ArrayList                     productsList.add(map);                 }             } else {                 // no products found                 // Launch Add New product Activity                 Intent i = new Intent(getApplicationContext(),                         NewDeviceActivity.class);                 // Closing all previous activities                 i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);                 startActivity(i);             }         } catch (JSONException e) {             e.printStackTrace();         }          return null;     }      /**      * After completing background task Dismiss the progress dialog      * **/     protected void onPostExecute(String file_url) {         // dismiss the dialog after getting all products         pDialog.dismiss();         // updating UI from Background Thread         runOnUiThread(new Runnable() {             public void run() {                 /**                  * Updating parsed JSON data into ListView                  * */                 ListAdapter adapter = new SimpleAdapter(                         AllDevicesActivity.this, productsList,                         R.layout.list_item, new String[] { TAG_PID,                                 TAG_NAME, TAG_STATUS},                         new int[] { R.id.pid, R.id.name, R.id.status });                 // updating listview                 setListAdapter(adapter);             }         });      } 

The XML file is:

    <?xml version="1.0" encoding="utf-8"?>     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:orientation="vertical" >      <!-- Product id (pid) - will be HIDDEN - used to pass to other activity -->     <TextView         android:id="@+id/pid"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:visibility="gone" />      <TextView         android:id="@+id/status"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:visibility="gone" />      <TextView         android:id="@+id/name"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:paddingTop="6dip"         android:paddingLeft="7dip"         android:textSize="17dip"         android:textStyle="bold" />      <ToggleButton         android:id="@+id/toggleButton1"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_alignParentRight="true"         android:layout_marginRight="7dp"         android:text="ToggleButton" />  </RelativeLayout> 

The values (name, ID and status) are received just fine, I have reached thus far: Screenshot of the app after execution of above code.

But I have no idea how to use the received 'status' value to change toggle associated with every list-view item. I tried to define the ToggleButton in the onCreate method like this:

tb = (ToggleButton) findViewById(R.id.toggleButton1); 

And then tried this in the for loop of doInBackground method above:

if (status == "1") {      tb.setChecked(true);            } 

But the app crashes if I do that may be because I have not idea where to put the associated code. Any help regarding this is appreciated.

Thank you!

</div
           
     
     

Список ответов

1
 
vote
vote
Лучший ответ
 
<Р> я использовал EditText для извлечения значения из JSON затем преобразовать его в кнопку переключения <Р> попробовать это в onPostExecute ()
 <код> protected void onPostExecute(Void result) {         try {             EditText1.setText(json.getString("your_param"));             EditText1.setVisibility(View.INVISIBLE);               if (EditText1.getText().toString().equalsIgnoreCase("1")) {                  toggleButton1.setChecked(true);             } else if (EditText1.getText().toString().equalsIgnoreCase("0")) {                  toggleButton1.setChecked(false);              }     }   
 

i used editText to retrieve value from JSON then convert it into toggle button

try this in your onPostExecute()

protected void onPostExecute(Void result) {         try {             EditText1.setText(json.getString("your_param"));             EditText1.setVisibility(View.INVISIBLE);               if (EditText1.getText().toString().equalsIgnoreCase("1")) {                  toggleButton1.setChecked(true);             } else if (EditText1.getText().toString().equalsIgnoreCase("0")) {                  toggleButton1.setChecked(false);              }     } 
</div
 
 

Связанный проблема

0  Класс libgdx не рисует текстуру  ( Libgdx class does not draw texture ) 
Я пытаюсь нарисовать игровой символ в моем классе "MaigaMestreen.java" из класса "Mavans.java", когда я касаюсь экрана моего телефона. К сожалению, моя прогр...

0  Замена ViewPager с фрагментом меню  ( Replacing viewpager with menuitem fragment ) 
У меня есть <код> Activity , в котором всего 4 <код> fragments есть. Из 4, 3 фрагменты интегрированы в виде вкладок с Viewpager , 4-й в меню в качестве и...

0  Новое намерение не начнется внутри Onlongpress?  ( New intent wont start inside onlongpress ) 
Я создал класс TapSturedEtector для поверхностного представления. Я поймаю длинное сенсорное событие, и я хочу начать новую активность. Но это не работает. На...

0  Автоматически заканчивать приложение / или автоматическое уничтожение приложения, поставляемое в Android?  ( Automatically finish an app or auto destroy app posible in android ) 
Два вопроса: 1) Я хочу добавить к моему приложению возможность автоматически выхода через несколько минут бездействия. Что я подразумеваю под автоматическим в...

0  ValueAnimator не работает, как это должно быть. Перезапуск от 0, а не с 1-го значения  ( Valueanimator does not work how it should restarts from 0 instead of from 1st v ) 
Это мой код: <код> public static void countTextViewTravelMode(final Integer value, final TextView myView, final CrudStateCallback back){ Integer begin ...

18  Не может решить импорт LocalBroadCastManager на оператор Android.support.v4.content.localboadcastmanager;  ( Can not resolve import localbroadcastmanager on statement android support v4 con ) 
Я получил эту ошибку при импорте проекта Eclipse на Android Studio. Он показывает предложение добавить библиотеку <код> Gradle: com.android.support:support-co...

0  Как мой банк обратная связь обратно на мой мобильный телефон?  ( How does my bank reverse connect back to my mobile phone ) 
Я бродил, как это работает программирование мудрым. Если я вошел в мой веб-сайт онлайн-банкинга на моем компьютере, так как я вхожу в систему, приложение на...

1  Обновление поле PDF штрих-кода в IOS и устройстве Android  ( Updating a pdf barcode field in ios and android device ) 
Я создал одну корпус Acrobat, используя радиообъекты, текстовое поле, кнопку, флажок и штрих-код в Adobe Acrobat Pro. После этого я открыл эту форму в Adobe...

23  Ошибка пропуска тестового прогона: запуск приборов не удалось из-за «Java.lang.classnotfoundException»  ( Test run failed instrumentation run failed due to java lang classnotfoundexcep ) 
Это мой первый раз настроив проект теста на Android для проверки проекта Android. Я создал очень базовый тестовый случай, который я пытаюсь запустить, однак...

2  Android Soundpool Heast Limits  ( Android soundpool heap limits ) 
Я использую Soundpool, чтобы загрузить несколько звуковых клипов и воспроизводить их обратно. Это правильно функционирует на 100% от того, что я могу сказат...

0  Как мне изменить стиль кнопки в Android?  ( How do i change the style of a button in android ) 
Я хочу изменить стиль кнопки в приложении Android. Вот картинка, которая имеет оба вида кнопок, то, что у меня есть сейчас, и тот, который я хочу переключитьс...

0  Бросить исключение, если код ответа не 20x  ( Throw exception if response code isnt 20x ) 
Я использую библиотеку koush Ion, и я хочу знать, есть ли возможность бросить исключение, если код ответа не 20x (например, если это 400, 401 и т. Д.). ...

8  Когда Android остановит свой процессор без блокировки Wake?  ( When will android stop its cpu without wake lock ) 
Я знаю, что Android использует Sake Blance, чтобы поддерживать запуск CPU или на экране. Очевидно, что Screen Sake Box предотвращает выключение экрана активно...

0  Получить почту пользователя, используя FQL  ( Get user email using fql ) 
Я использую следующий FQL, чтобы получить дни рождения из Facebook (я знаю, что API TEH изменился) Однако я хочу продолжить с этим: <код> String fqlQuery = ...

-1  Начать активность и не заканчивать деятельность  ( Start activity and dont finish activity ) 
У меня есть всплеск активности и свидетельствующая активность, в которой я открываю некоторые активиты: Резюме: SPLAH - & GT; Главная & GT; A или B или C и ...

Связанный проблема

0  Класс libgdx не рисует текстуру 
0  Замена ViewPager с фрагментом меню 
0  Новое намерение не начнется внутри Onlongpress? 
0  Автоматически заканчивать приложение / или автоматическое уничтожение приложения, поставляемое в Android? 
0  ValueAnimator не работает, как это должно быть. Перезапуск от 0, а не с 1-го значения 
18  Не может решить импорт LocalBroadCastManager на оператор Android.support.v4.content.localboadcastmanager; 
0  Как мой банк обратная связь обратно на мой мобильный телефон? 
1  Обновление поле PDF штрих-кода в IOS и устройстве Android 
23  Ошибка пропуска тестового прогона: запуск приборов не удалось из-за «Java.lang.classnotfoundException» 
2  Android Soundpool Heast Limits 
0  Как мне изменить стиль кнопки в Android? 
0  Бросить исключение, если код ответа не 20x 
8  Когда Android остановит свой процессор без блокировки Wake? 
0  Получить почту пользователя, используя FQL 
-1  Начать активность и не заканчивать деятельность 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.