0
public class MainActivity extends AppCompatActivity { 


    private AutoCompleteTextView autoCompleteTextView; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView); 


     new HttpGetTask().execute("http://192.168.0.107/abc/translator.php"); 

    } 

    public class HttpGetTask extends AsyncTask<String, String, List<TranslatorModel>> { 


     @Override 
     protected List<TranslatorModel> doInBackground(String... params) { 
      HttpURLConnection connection = null; 
      BufferedReader reader = null; 


      try { 
       URL url = new URL(params[0]); 
       connection = (HttpURLConnection) url.openConnection(); 
       connection.connect(); 

       InputStream stream = connection.getInputStream(); 

       reader = new BufferedReader(new InputStreamReader(stream)); 

       StringBuffer buffer = new StringBuffer(); 

       String line = ""; 
       while ((line = reader.readLine()) != null) { 
        buffer.append(line); 
       } 

       String finalJson = buffer.toString(); 
       JSONArray parentArray = new JSONArray(finalJson); 

       List<TranslatorModel> translatorModelList = new ArrayList<>(); 


       for(int i= 0; i<parentArray.length();i++) { 

        JSONObject finalObject = parentArray.getJSONObject(i); 

        TranslatorModel translatorModel = new TranslatorModel(); 


         translatorModel.setEnglish(finalObject.getString("englishSentence")); 


         translatorModelList.add(translatorModel); 
        } 



       return translatorModelList; 

      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } finally { 
       if (connection != null) { 
        connection.disconnect(); 
       } 

       try { 
        if (reader != null) { 
         reader.close(); 
        } 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
      return null; 
     } 


     @Override 
     protected void onPostExecute(List<TranslatorModel> data) { 

      super.onPostExecute(data); 


     } 
    } 
} 

englishSentence - это строковый объект json. методы setter и getter определены в классе TranslatorModel. Я хочу отображать значения englishSentence в моем autocompleteTextViewОтображение данных объектов JSON в Android AutoCompleteTextview

Задача: Какой код будет использоваться для отображения данных в autocompletetextview? Где добавить класс адаптера класса и какой код будет работать? Какой код будет использоваться в методеPostExecute?

+0

использование MainActivity.this. – siva35

ответ

0

добавить ArrayAdapter внутри метода onPostExecute

@Override 
protected void onPostExecute(List<TranslatorModel> data) { 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,data); 

    autoCompleteTextView.setAdapter(adapter); 
    autoCompleteTextView.setThreshold(1); 



super.onPostExecute(data); 
} 
+0

У меня есть ошибка в вашем коде. и эта ошибка обнаружена в getActivity(). что делать сейчас ? – Safiullah

Смежные вопросы