91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

EditText控件的文本如何自動填充歷史記錄

發布時間:2024-08-20 17:25:24 來源:億速云 閱讀:84 作者:小樊 欄目:移動開發

要實現EditText控件的文本自動填充歷史記錄,可以通過以下步驟實現:

  1. 創建一個包含歷史記錄的數據源,例如一個字符串數組或是一個列表。
  2. 使用SharedPreferences來保存和讀取歷史記錄數據,確保在應用關閉后數據不會丟失。
  3. 在EditText控件上設置一個監聽器,監聽用戶的輸入,并根據輸入的內容動態過濾歷史記錄數據。
  4. 當用戶點擊輸入框時,顯示歷史記錄數據作為提示。
  5. 當用戶選擇歷史記錄中的某一項時,將該項的文本填充到EditText控件中。

以下是一個簡單的示例代碼:

public class MainActivity extends AppCompatActivity {

    private EditText editText;
    private ArrayAdapter<String> adapter;
    private List<String> historyList;

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

        editText = findViewById(R.id.editText);
        historyList = new ArrayList<>();

        // 從SharedPreferences中讀取歷史記錄數據
        SharedPreferences sharedPreferences = getSharedPreferences("History", MODE_PRIVATE);
        Set<String> historySet = sharedPreferences.getStringSet("history", new HashSet<>());
        historyList.addAll(historySet);

        // 設置監聽器,監聽用戶輸入
        editText.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) {}

            @Override
            public void afterTextChanged(Editable s) {
                String input = s.toString();
                List<String> filteredList = new ArrayList<>();
                for (String item : historyList) {
                    if (item.toLowerCase().contains(input.toLowerCase())) {
                        filteredList.add(item);
                    }
                }
                adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_dropdown_item_1line, filteredList);
                editText.setAdapter(adapter);
            }
        });

        editText.setOnItemClickListener((parent, view, position, id) -> {
            String selectedText = adapter.getItem(position);
            editText.setText(selectedText);

            // 將選擇的歷史記錄添加到第一位
            historyList.remove(selectedText);
            historyList.add(0, selectedText);

            // 保存歷史記錄數據到SharedPreferences
            SharedPreferences.Editor editor = sharedPreferences.edit();
            editor.putStringSet("history", new HashSet<>(historyList));
            editor.apply();
        });
    }
}

在上面的示例中,我們通過SharedPreferences保存和讀取歷史記錄數據,并根據用戶輸入動態過濾歷史記錄數據。當用戶選擇歷史記錄中的某一項時,將該項的文本填充到EditText控件中,并將該項添加到歷史記錄的第一位。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁都县| 海伦市| 罗城| 通榆县| 兴义市| 宜川县| 东海县| 江华| 渑池县| 绥芬河市| 砚山县| 呼玛县| 廉江市| 阿拉善盟| 长寿区| 阳泉市| 双峰县| 景东| 广德县| 宜黄县| 江永县| 都兰县| 新和县| 巍山| 望都县| 灌南县| 抚松县| 白山市| 花莲县| 石河子市| 冕宁县| 宜春市| 安福县| 徐州市| 伽师县| 义马市| 南和县| 习水县| 鄂托克旗| 民丰县| 明水县|