android - AutoCompleteTextView 建议未显示

标签 android sql autocompletetextview

我想显示来自 SQL 的建议 AutocompleteTextView。我调试我的代码,我看到当我在 autocompleteTextView 中写入任何字符时,值会进入 nMAcDetailID 和 cMachineName。现在我想显示建议列表。我怎样才能做到这一点?

SimpleAdapter ADAhere;

List<Map<String, String>> data = null;

txtMachineName.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {}

            private Timer timer=new Timer();
            private final long DELAY = 300; // milliseconds
            @Override
            public void afterTextChanged(Editable s) {
                timer.cancel();
                timer = new Timer();
                timer.schedule(
                        new TimerTask() {
                            @Override
                            public void run() {
                                // TODO: do what you need here (refresh list)
                                // you will probably need to use runOnUiThread(Runnable action) for some specific actions
                                new async_fillMachineName().execute();
                            }
                        },
                        DELAY
                );


            }
        });


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

        @Override
        protected String doInBackground(String... params) {

            try {
                Connection con = connectionClass.CONN();
                if (con == null) {

                    getActivity().getParent().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            Toast.makeText(getActivity(), "please Check Your Internet Connection", Toast.LENGTH_LONG).show();
                        }
                    });
                } else {
                    @SuppressWarnings("WrongThread") String query = "exec App_ac_MacName "+nClintID+",'"+txtMachineName.getText()+"'";
                    ResultSet rs = dbHelp.executeRS(query);
                    data = new ArrayList<Map<String, String>>();
                    try {
                        while (rs.next()) {
                            Map<String, String> datanum = new HashMap<String, String>();
                            datanum.put("ID",rs.getString("nMAcDetailID"));
                            datanum.put("NAME", rs.getString("cMachineName"));
                            data.add(datanum);
                            String str;
                            str = "1";
                        }

                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return resultClientID;
        }
        @Override
        protected void onPostExecute(String result1) {

            try {
                String[] fromwhere = {"ID","NAME"};
                int[] viewswhere = {R.id.nSerialMachineID,R.id.cCodeMachineNAme};
                ADAhere = new SimpleAdapter(getActivity(), data, R.layout.machine_autocomplete_list_template, fromwhere, viewswhere);
                //SimpleCursorAdapter a = new SimpleCursorAdapter(getActivity(), R.layout.machine_autocomplete_list_template, null, fromwhere, viewswhere, 0);
                //a.setStringConversionColumn(1);
                txtMachineName.setAdapter(ADAhere);

            } catch (Exception e) {

            }
            super.onPostExecute(result1);

        }
    }

最佳答案

如果 AutocompleteTextView 设置了带值的适配器,您可以使用方法 showDropDown() 强制 View 显示建议。

关于android - AutoCompleteTextView 建议未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39974819/

相关文章:

java - android中如何获取drawable图片路径?

android - 如何将以前的屏幕应用 Activity 启动到我的模拟器?

sql - PostgreSQL 上的同义词支持

java - Kotlin 传递对象类作为参数初始化

android - 无法让 Android 应用程序在平板电脑上运行

php - 在 SQLite 中选择和项目的当前、上一个和下一个值的最有效方法

sqlalchemy 按日期列仅选择 x newset 天

android - 从对象的 ArrayList 中获取字符串以用于自动完成 TextView

android - 自动完成 TextView 建议列表在键盘后面

Android 在 AutoCompleteTextView 中获取值的 Id