【问题标题】:EditText AutoComplete Base on ArrayAdapterEditText 自动完成基于 ArrayAdapter
【发布时间】:2018-05-14 06:41:43
【问题描述】:

我有一个片段活动,它调用 AutoComplete EditText 函数,这是我的代码 onCreateView

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_pegawai, container, false);

    textAutoComplete = v.findViewById(R.id.autoCompleteTextView1);
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, heroes);
    textAutoComplete.setAdapter(arrayAdapter);
    textAutoComplete.setThreshold(1);

    listView = v.findViewById(R.id.DaftarTextViewNamaPegawai);

    return v;
}

我对 ArrayAdapter 中的调用字符串 heroes 感到困惑。我这样设置函数

private void getJSON(final String urlWebService) {

    class GetJSON extends AsyncTask<Void, Void, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }


        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Toast.makeText(getContext(), s, Toast.LENGTH_SHORT).show();
            try {
                loadIntoListView(s);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

        @Override
        protected String doInBackground(Void... voids) {
            try {
                URL url = new URL(urlWebService);
                HttpURLConnection con = (HttpURLConnection) url.openConnection();
                StringBuilder sb = new StringBuilder();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
                String json;
                while ((json = bufferedReader.readLine()) != null) {
                    sb.append(json + "\n");
                }
                return sb.toString().trim();
            } catch (Exception e) {
                return null;
            }
        }
    }
    GetJSON getJSON = new GetJSON();
    getJSON.execute();
}

private void loadIntoListView(String json) throws JSONException {
    JSONArray jsonArray = new JSONArray(json);
    String[] heroes = new String[jsonArray.length()];
    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject obj = jsonArray.getJSONObject(i);
        heroes[i] = obj.getString("name");
    }
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, heroes);
    listView.setAdapter(arrayAdapter);
}

但是当我尝试在 EditText 中键入文本时,它不是自动完成。 谁能帮帮我?

【问题讨论】:

    标签: android autocomplete android-edittext android-arrayadapter


    【解决方案1】:

    你可以在写下面 3 行代码后填充列表视图。

     ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, heroes);
             textAutoComplete.setAdapter(arrayAdapter);
             textAutoComplete.setThreshold(1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-13
      • 2012-03-24
      • 2020-05-01
      • 2012-05-11
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多