0

私のアプリには、キーボードが邪魔になるダイアログに一連の TextView があります。次のコードを使用して、イベントを使用してキーボードを非表示にしようとしています。「voidは変数ビルダーの無効な型です」と書かれているため、コンパイルされません!

@Override
protected Dialog onCreateDialog(int id) {
    LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    final View layout = layoutInflater.inflate(R.layout.exindex_dialog, (ViewGroup) findViewById(R.id.ex_index));

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setView(layout);

    builder.setOnItemSelectedListener((OnItemSelectedListener) arg0);
    {
         public void builder.filterStr2.isSelected();  //error is here
         {
             InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
             mgr.hideSoftInputFromWindow(filterStr2.getWindowToken(), 0);
         }      
    }
}

私は何を間違っていますか?

4

1 に答える 1

0

コンパイラはあなたが何をしようとしているのか理解していませんが、私も理解していません...

とはarg0?

OnItemSelectedListenerのリスナーを定義しようとしているのかもしれませんbuilderが、その場合は onItemSelected() および onNothingSelected() メソッドを実装する必要があります...

したがって、「isSelected」行がわかりません...

たぶん、あなたがやろうとしていることは、次のようなものです:

builder.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            if (arg3 == filterStr2.id) { // You should maybe change this
                                            // conditional
                InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                mgr.hideSoftInputFromWindow(filterStr2.getWindowToken(), 0);
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // Do nothing
        }

    });
于 2012-11-28T18:32:33.933 に答える