sql >> データベース >  >> RDS >> Mysql

MySQLデータを使用したAutoCompleteTextView

    入力ボックスの変更を「監視」するメカニズムが必要なだけで、それを実現する最も正しい方法がTextWatcherに記載されています。

    したがって、それを実装し、TextWatcherを提供するいくつかのメソッドで実装します たとえば、 onTextChanged() 、inputboxからデータを割り当て、それらをパラメータとして AsyncTaskに送信します およびonPostExecute() メソッドは、AutoCompleteTextView用の新しいアダプタを作成します MySQLから取得したデータを使用 アダプターをウィジェットに割り当てると、それが得られます。

    擬似コード:

    public void onTextChanged(CharSequence s, int start, int before, int count) {
       if (s.length() > 1) {
          insertString = s.toString();
          new YourTask().execute(insertString);                  
       }
    }
    

    AsyncTaskで、次のように実行します。

    protected List<String> doInBackground() {
       // fetchning data from MySQL
       return list;
    }
    
    public void onPostExecute(List<String> result) {
       if (!result.isEmpty()) {
           SomeAdapter adp = new SomeAdapter(context, layout, result);
           actv.setAdapter(adp);
       }
    }
    

    注: あなたの場合、AsyncTaskを作成する方が簡単です Activityの内部クラス クラスであり、UIに直接アクセスできます コンポーネントをコンストラクター経由で渡さずに。



    1. PHPのSQLクエリ内で一重引用符を処理するにはどうすればよいですか?

    2. SQL Server Management Studio-列の追加/移動にはドロップと再作成が必要ですか?

    3. Mysqlストアドプロシージャを実行すると、不明な列エラーが発生します

    4. EntityFrameworkでの大規模な追加と削除の多対多の関係