1

Android のドキュメントを読んで、Spinner に addTextChangedListener を使用できないことは理解していますが、不足している代替手段はありますか?

いくつかのフォームを作成しましたが、変更が保存されていない場合にユーザーに通知したいと考えています (EditText ボックスを使用すると、これを行うことができます)。

以下は、EditText の textChangeListener の例です。

     inspectionReferenceEditText.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) {
             changesMade = true;
         }

どうもありがとう。

4

1 に答える 1

3

Spinner ではユーザーがテキストを入力する必要がないため、TextWatcher がどのように役立つかわかりません。ただし、OnItemSelectedListenerを使用して、ユーザーが変更を行ったときに通知を受け取ることができます。

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    int previous = -1;
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        if(previous != position && previous < -1) {
            Log.v("Example", "Item Selected: " + parent.getItemAtPosition(position).toString());
            // Do something
        }
        previous = position;
    }

    public void onNothingSelected(AdapterView<?> parent) {}
});
于 2012-10-05T19:10:12.470 に答える