0

いくつかの方向性が欲しいです。私はそれについてあまり明確に理解していません。だからお願い...

  1. これがxml形式の私の編集テキストです:

     <EditText 
        android:id="@+id/editTextName"
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:layout_margin="3dp" 
        android:hint="Insert Name"  
        android:onClick="surNameEditTextClick" />
    
  2. 編集テキストの入力文字列を取得するコード:

    EditText nameText = (EditText) findViewById(R.id.editTextName);
    String name = nameText.getText().toString();
    
  3. 名前文字列を文字列の配列リストに保存します。

    ArrayList<String> nameArrayList = new ArrayList<String> ; //created globally 
    if(!(nameArrayList.contains(name))){
    
        //Adding input string into the name array-list
        nameArrayList.add(name) ;
    }
    
  4. この配列リストを共有設定に入れます:

    SharedPreferences saveGlobalVariables = getSharedPreferences(APP_NAME, 0);
    SharedPreferences.Editor editor = saveGlobalVariables.edit();
    editor.putStringSet("name", new HashSet<String>(surNameArrayList));
    editor.commit();
    
  5. プログラムのロード時に(onCreate()で)すべてのShared-Preferencesデータをarray-listに戻す:

    SharedPreferences loadGlobalVariables = getSharedPreferences(APP_NAME, 0);
    nameArrayList = new ArrayList<String>(loadGlobalVariables.getStringSet("name", new HashSet<String>()));
    

次に、この編集テキストの下にあるビューフォームでこのデータを取得する方法を説明します。私はさまざまな方法を見てきましたが、はっきりと理解していません。私が使用する場合

EditText mNameEditText;
mNameEditText = (EditText)findViewById(R.id.editTextName);
mNameEditText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s){

}

public void beforeTextChanged(CharSequence s, int start, int count, int after){

}

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

}

});

では、ここではどのコードスニペットが使用されますか?どのtextViewまたはlist-viewを使用する必要があり、どこで使用する必要がありますか?理解できません。他の方法が利用できる場合は、ここに入力してください。よろしく、

4

1 に答える 1

1

あなたはそこへの道のほとんどです。AutoCompleteTextViewを使用し、リストをArrayAdapterにバインドすることをお勧めします。(AutoCompleteTextViewには、ユーザーが類似のエントリから選択するのに役立つドロップダウン機能がすでにあり、TextWatcherは必要ありません。)

ドキュメントからのコード:

 public class CountriesActivity extends Activity {
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         setContentView(R.layout.countries);

         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                 android.R.layout.simple_dropdown_item_1line, COUNTRIES);
         AutoCompleteTextView textView = (AutoCompleteTextView)
                 findViewById(R.id.countries_list);
         textView.setAdapter(adapter);
     }

     private static final String[] COUNTRIES = new String[] {
         "Belgium", "France", "Italy", "Germany", "Spain"
     };
 }

(ArrayListは、上記のプリミティブ配列と同じ方法で使用できます。)

于 2013-02-16T15:51:14.387 に答える