提取一個(gè)帶計(jì)數(shù)框的EditText

這是效果圖:

話不多數(shù)先上布局,我用的是線性布局:

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_margin="@dimen/padding"

android:background="@drawable/gray_corner_edit_input_bg"

android:orientation="vertical"

android:padding="@dimen/half_padding">

android:id="@+id/count_edit"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@null"

android:gravity="top|left"

android:inputType="textMultiLine"

android:minLines="3"

android:paddingBottom='@dimen/half_padding'

android:textColor="@color/black"

android:textColorHint="@color/text_color"

android:textSize="@dimen/small_text_size"/>

android:id="@+id/letter_count"

style="@style/MDWrapContentGrayTextStyle"

android:layout_width="wrap_content"

android:layout_gravity="right"

android:text="0/150"/>

</LinearLayout>


接下來就是要通過代碼還控制了:

//

public class EditTextCount extends RelativeLayout {

private EditText etContent;//文本框

privateTextView tvNum;//字?jǐn)?shù)顯示TextView

private int MaxNum=150;//最大字符

//空參構(gòu)造和有參構(gòu)造

public EditTextCount(Context context) {

this(context, null);

}

public EditTextCount(Context context,AttributeSet attrs) {

super(context,attrs);

LayoutInflater.from(context).inflate(R.layout.view_count_layout, this, true);

etContent= (EditText) findViewById(R.id.count_edit);

tvNum= (TextView) findViewById(R.id.letter_count);

intlength =etContent.getText().toString().length();

tvNum.setText(length +"/"+MaxNum);

//設(shè)置最大長度

etContent.setFilters(newInputFilter[]{newInputFilter.LengthFilter(MaxNum)});

//監(jiān)聽輸入

etContent.addTextChangedListener(mTextWatcher);

}

//設(shè)置最大字?jǐn)?shù)

public voidsetLength(intnum){

MaxNum= num;

etContent.setFilters(newInputFilter[]{newInputFilter.LengthFilter(MaxNum)});

intlength =etContent.getText().toString().length();

tvNum.setText(length +"/"+MaxNum);

}

//設(shè)置框內(nèi)的hint內(nèi)容

public void setEtHint(intstr){

etContent.setHint(str);

}

//設(shè)置內(nèi)容

public void setEtText(String str){

etContent.setText(str);

}

// 獲取輸入內(nèi)容

public String getText(){

return etContent.getText().toString();

}

//主要還是通過給EditText 設(shè)置 TextWatcher 來監(jiān)聽

private TextWatcher mTextWatcher=new TextWatcher() {

public voidafterTextChanged(Editable s) {

intlength =etContent.getText().toString().length();

tvNum.setText(length +"/"+MaxNum);

}

public void beforeTextChanged(CharSequence s, intstart, intcount,intafter) {}

public void onTextChanged(CharSequence s, intstart, intbefore,intcount) {}

};

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容