EditText는 입력 시 자동으로 단위를 추가하고 증명번호 부분 변성호를 입력해도 참고할 수 있습니다

이것은 본인의 첫 번째 기술 블로그이니 당연히 창작해야 한다.첫 편으로 기초적이고 실용적인 것을 말씀드리자면 EditText는 모두가 사용한 가장 기본적인 컨트롤입니다.개발 과정에서 때때로 사용자 체험을 위해 EditText 입력 과정에서 단위를 추가하거나 증명서 번호를 입력할 때 부분적으로 별표를 바꾸는 수요가 있다.본문은 이에 대해 토론을 진행한다.더 좋은 생각이 있으면 가르침을 환영합니다.
실현 사고방식은 이중 구조로 위에 투명하게 내용을 입력하고 아래에 TextView가 내용을 표시하기 때문에 EditText의 입력을 감청해야 한다.효과도는 보이지 않고 간단한 입력 상자로 텍스트를 입력할 때 자동으로 단위를 추가합니다.
레이아웃 파일을 먼저 위쪽으로 이동하려면 다음과 같이 하십시오.



    

        

        

    


style 파일, as 추출 생성:
 
------------------------------------------------------------
기본 코드:
package com.cysion.textwatcherdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;

/**
 * Created by Cysion
 */
public class MainActivity extends AppCompatActivity {

    private String unit = "cm";
    private TextView tvUnit;
    private EditText etUnit;
    private String temp = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        setListener();
    }

    private void initView() {
        tvUnit = (TextView) findViewById(R.id.tv_unit);
        etUnit = (EditText) findViewById(R.id.et_unit);
    }

    private void setListener() {
        //       
        etUnit.addTextChangedListener(new DiyTextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                temp = etUnit.getText().toString().trim();
                tvUnit.setText(temp+" "+unit);
                if (temp.length()==0){
                    tvUnit.setText("");
                }
            }
        });
    }
}

4
//            
    abstract class DiyTextWatcher implements TextWatcher {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }
        @Override
        public void afterTextChanged(Editable s) {
        }
    }
사고방식이 간단하고 실현도 복잡하지 않아 개발 tips라고 할 수 있다.사용자 정의view는 물론 가능하지만, 때때로 본고의 사고방식은 더욱 간단하다.

좋은 웹페이지 즐겨찾기