EditTextの使用


ツールバーの
  • android:drawableLeft:textの左側にdrawableを出力します.画像、スタイル、色などです.
  • android:drawableRight:textの右側にdrawableを出力します.画像、スタイル、色などです.
  • android:inputType:入力文字の種類を設定し、「numberDecimal」は小数点の浮動小数点数を入力できることを示し、同時に文字を入力する時キーボードはデジタルキーボード
  • である.
  • android:imeOptions:デフォルトでソフトキーボードの右下隅にあるボタンの表示内容を設定し、「actionSearch」であれば検索
  • と表示する
  • android:hint:デフォルトで空間に表示されるプロンプトを設定し、内容を入力するとプロンプトは
  • 消えます.
  • android:maxLines:テキストの最大表示行数をwidthまたはlayout_と設定widthは組み合わせて使用し、超えた部分は自動的に改行され、超えた行数は表示されません.

  • ≪イベント|Events|ldap≫
    addTextChangedListener
    はandroidテキストボックスが変更されたリスナーで、一般的にテキスト入力を統計したり、入力が規範に合致しているかどうかを監視したりするために使用されます.テキストボックスのテキスト変更をリスニングするには、beforeTextChanged、onTextChanged、afterTextChangedの3つの方法が必要です.ここでは主にコンテンツが入力されているかどうかを検出し、コンテンツが入力されている場合は検索ボタンを表示し、×日の出現.
    入力内容:
    コンテンツが入力されていない場合:
    licheng.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) {
                lc_end=licheng.getText().toString().trim();
                //Toast.makeText(MainActivity.this, lc_end+"enen", Toast.LENGTH_SHORT).show();
                if(lc_end.equals("")) {
                    //Toast.makeText(MainActivity.this, "HI", Toast.LENGTH_SHORT).show();
                    btn_search.setVisibility(Button.GONE);
                    Drawable leftDrawable = getResources().getDrawable(R.drawable.ic_search_grey_600_24dp);
                    leftDrawable.setBounds(0, 0, leftDrawable.getMinimumWidth(), leftDrawable.getMinimumHeight());
                    licheng.setCompoundDrawables(leftDrawable, null, null, null);
                }else{
                    //Toast.makeText(MainActivity.this, "hello", Toast.LENGTH_SHORT).show();
                    btn_search.setVisibility(Button.VISIBLE);
                    Drawable rightDrawable = getResources().getDrawable(R.drawable.ic_clear_black_18dp);
                    rightDrawable.setBounds(0, 0, rightDrawable.getMinimumWidth(), rightDrawable.getMinimumHeight());
                    Drawable leftDrawable = getResources().getDrawable(R.drawable.ic_search_grey_600_24dp);
                    leftDrawable.setBounds(0, 0, leftDrawable.getMinimumWidth(), leftDrawable.getMinimumHeight());
                    licheng.setCompoundDrawables(leftDrawable, null, rightDrawable, null);
                }
            }
        });
    

    主にafterTextChangedメソッドを使用し、テキストボックスのテキストが変化した後、入力内容が空の場合、buttonをGONEに設定すると表示されず、テキストボックスの検索画像が表示されない.入力内容が空でない場合、buttonをVISIBLEに設定すると表示され、検索画像と×番号.
    setOnTouchListener
    は、あるコントロールに対してあるViewがクリックするかどうかのモニタであり、一般的にあるコントロールがクリックされるかどうかを判断するために使用され、コントロールがクリックされるかどうかを監視するには、実現する必要がある:onTouch()メソッド.ここではテキストボックスの×番号がクリックされたか、クリックされた場合はテキストボックスの内容が空に設定されます.
     licheng.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                Drawable drawable = licheng.getCompoundDrawables()[2];
                //        ,    
                if (drawable == null)
                    return false;
                //        ,    
                if (event.getAction() != MotionEvent.ACTION_UP)
                    return false;
                if (event.getX() > licheng.getWidth()
                        - licheng.getPaddingRight()
                        - drawable.getIntrinsicWidth()){
                    licheng.setText("");
                }
                return false;
            }
        });
    

    まず否を判断する×番号ピクチャが存在するか、trueであれば押下イベントか、trueであれば押下領域が×番号ピクチャの位置、trueの場合、テキストボックスの内容は空です.
    setOnEditorActionListener
    テキストボックスに編集リスニングイベントを追加するのですが、setOnEditorActionListenerという方法は、私たちがEditTextをクリックしたときにトリガーされるのではなく、EditTextを編集したときにトリガーされるのではなく、編集が終わった後にソフトキーボードのリターンキー(ここでは検索)をクリックしてからトリガーされるのです.ここではリターンボタンをモニタし、テキストボックスの内容が空であればクリックしてプロンプトをポップアップし、空でなければ次のactivityに進みます.
    licheng.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
               String lc_end=licheng.getText().toString();
                if(TextUtils.isEmpty(lc_end)) {
                    Toast.makeText(MainActivity.this, "        ", Toast.LENGTH_SHORT).show();
                    licheng.requestFocus();
                    InputMethodManager imm = (InputMethodManager) licheng.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
                }else{
                    xlm=sp_xlm.getSelectedItem().toString();
                    positi=sp_xlm.getSelectedItemPosition();
                    traData();
                }
                return false;
            }
        });
    

    ここでヒントはtoastで表示され、データを転送する方法が使われています.