AutoCompleteTextView未显示mysql数据库的结果

时间:2016-12-25 17:03:11

标签: java android json android-asynctask autocompletetextview

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;



      }

    }
}

//我想从我的数据库中获取数据。我创建了一个翻译模型类和一个翻译活动类。

翻译活动是我的主要课程。在这个类中我还创建了translatorAdapter类。 2个xml布局文件。主活动xml文件具有自动完成textview。其他xml文件有textview。

0 个答案:

没有答案
相关问题