AutoCompleteTextView is not showing results from mysql database

102 Views Asked by At
package rappiddevelopers.destinationadvisor;

import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.TextView;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import rappiddevelopers.destinationadvisor.models.HotelModel;
import rappiddevelopers.destinationadvisor.models.TranslatorModel;

public class TranslatorActivity extends AppCompatActivity {


    private AutoCompleteTextView textView;

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


        textView = (AutoCompleteTextView) findViewById(R.id.actTranslator);


        new JSONTranslatorTask().execute(Constants.TranslatorDatabase);

}

public class JSONTranslatorTask 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.setEnglishSentence(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);

        TranslatorAdapter adapter = new TranslatorAdapter(getApplicationContext(), R.layout.translator, data);


        textView.setAdapter(adapter);
    }
}

public class TranslatorAdapter extends ArrayAdapter {

    private List<TranslatorModel> translatorModelList;
    private int resource;
    private LayoutInflater inflater;

    public TranslatorAdapter(Context context, int resource, List<TranslatorModel> objects) {
        super(context, resource, objects);
        translatorModelList = objects;
        this.resource = resource;
        inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder holder = null;

        if(convertView == null){
            convertView = inflater.inflate(resource, null);
            holder = new ViewHolder();


            holder.tvTranslator     = (TextView) convertView.findViewById(R.id.tvTranslator);



            convertView.setTag(holder);
        }

        else {
            holder = (ViewHolder) convertView.getTag();
        }






        holder.tvTranslator.setText(translatorModelList.get(position).getEnglishSentence());




        return convertView;
    }

    class ViewHolder{


        private TextView tvTranslator;



      }

    }
}

// I want to fetch data from my database . i created one translator model class and one translator activity class.

translator activity is my main class. in this class i also created translatorAdapter class. 2 xml layout files. main activity xml file have autocomplete textview . other xml file have textview .

0

There are 0 best solutions below