0

자동 완성 텍스트 뷰를 사용 중입니다. 사용자가 자동 ​​완성 텍스트 뷰에 데이터를 입력하면 Autocomplete TextView에서 사용되는 어댑터에 자동 저장되며 다음에 사용자가 동일 텍스트를 검색하면 예를 들어, 사용자가 어댑터에서 동일한 것을 얻을 수 있습니다. 예를 들어 택시 용 앱을 만들 때 고객이 시작 지점을 입력해야합니다. 어댑터에 고객이 없다고 가정하고 주소를 작성하지만 다음 고객은 동일한 위치로 이동하려고했습니다. 그것을 입력해야합니다 위치를 입력하십시오 드롭 다운 내가이 일을하는 방법을 모르겠다 아무도 도와 주실 수 있습니다 미리 감사드립니다!자동 완성 텍스트 뷰에 데이터를 저장하는 방법

+0

어떤 도움이 있습니까

로드는 과거에 사용자가 데이터를 입력? –

답변

0

데이터를로드하는 위치에 따라 다릅니다. 기본적으로 수행해야하는 작업은 AutoCompleteTextView에서 수신기를 설정하는 것입니다. 당신이 데이터베이스에서 데이터를 가져 오는하는 경우

autocomplete.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
     { 
      //Todo update data in adapter 
     } 
    }); 

당신은 아마 SimpleCursorAdapter

SimpleCursorAdapter adapter = new SimpleCursorAdapter(activity, R.layout.name_id_list_item, 
                  cursor, new String[]{"name"}, 
                  new int[]{android.R.id.text1}); 

그래서 당신의 클릭에 방법은 다시 데이터베이스에 데이터를 작성합니다 사용하고 있습니다. 까다로운 부분은 새 데이터를 채우기 위해 어댑터를 업데이트해야한다는 것입니다.

당신은 어댑터를 다시하고 AutoCompleteTextView.setAdapter()

1

으로 설정하여이 예제 된 SharedPreferences를 사용하여 사용자 데이터를 저장하는 방법을 보여줍니다 것을 할 수 있습니다. 아니 이미 존재하는 것을 확인 후

public void loadSavedLines() { 
     SharedPreferences settings = getSharedPreferences("data", 0); 
     int size = settings.getInt("size", 0);  

     if (size != 0) {      
      String[] history = new String[size];   

     for (int i = 0; i &lt; size; i++) {  
      history[i] = settings.getString(String.valueOf(i+1), "empty"); 
     } 

     AutoCompleteTextView autoComplete= (AutoCompleteTextView) findViewById(R.id.autoComplete);  
     ArrayAdapter adapter = new ArrayAdapter(this, R.layout.simple_my_dropdown, history); 
     autoComplete.setAdapter(adapter); 
     autoComplete.setText(saved_uri); 
    } 

저장 :

public void checkThanSaveLine(String new_line, AutoCompleteTextView autoComplete) { 
    SharedPreferences settings = getSharedPreferences("data", 0); 
    int size = settings.getInt("size", 0); 
    String[] history = new String[size+1];  
    boolean repeat = false; 
    for (int i = 0; i < size; i++) {     
     history[i] = settings.getString(String.valueOf(i+1),"empty"); 
     if (history[i].equals(new_line.toString())) { 
      repeat = true; 
     } 
    } 
    if (repeat == false) { 
     SharedPreferences.Editor editor = settings.edit();  
     editor.putString(String.valueOf(size+1), new_line.toString()); 
     editor.putInt("size", size+1); 
     editor.commit(); 
     history[size] = new_line.toString();     
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,R.layout.simple_my_dropdown, history); 
     autoComplete.setAdapter(adapter); 
    } 
} 
관련 문제