Android EditText 상세 설명 및 예제 코드
15881 단어 Android텍스트 상세 설명 편집
java.lang.Object
android.view.View
android.widget.TextView
android.widget.EditText
이미 알 고 있 는 직접 하위 클래스:
AutoCompleteTextView, ExtractEditText
알 고 있 는 간접 하위 클래스:
MultiAutoCompleteTextView
EditText 는 TextView 의 직접 하위 클래스 이기 때문에 EditText 는 부모 류 TextView 의 일부 방법 을 계승 합 니 다.다음은 제 가 직접 쓴 데모 하나 로 에 디 트 뷰 의 사용법 을 자세히 설명해 드 리 겠 습 니 다.
1.간단 한 EditText 입력 상자
매우 간단 합 니 다.layot 레이아웃 에서 EditText 를 설정 하여 코드 에서 Button 을 감청 하 는 이 벤트 를 설정 하여 현재 EditView 에 입력 한 내용 을 가 져 오고 표시 합 니 다.
XML/HTML 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textviewll"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:id="@+id/sample_edit_text0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" EditText "/>
<Button
android:id="@+id/sample_button0"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text=" "/>
</LinearLayout>
자바 코드
public class SampleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.sample);
final EditText editText0 = (EditText)findViewById(R.id.sample_edit_text0);
Button button0 = (Button)findViewById(R.id.sample_button0);
button0.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String str = editText0.getText().toString();
Toast.makeText(SampleActivity.this,str, Toast.LENGTH_LONG).show();
}
});
super.onCreate(savedInstanceState);
}
}
2.EditText 입력 상자 의 내용 제한layot 에 정 보 를 설정 합 니 다.
android:digits=”1234567890.+-*/%()”
입력 상자 에 자신 이 정의 한 문자열 만 입력 할 수 있 도록 제한 합 니 다.다른 문자열 을 입력 하면 표시 되 지 않 습 니 다.
android:phoneNumber=”true”
입력 제한 상자 에 핸드폰 번호 만 입력 할 수 있 습 니 다.
android:password=”true”
입력 상자 에 입력 한 모든 내용 을'*'기호 로 표시 하도록 제한 합 니 다.
android:hint="기본 텍스트"
내용 을 입력 하기 전에 입력 상자 에 기본적으로 표 시 된 텍스트
android:textColorHint=”#FF0000″
텍스트 내용 색상 설정
android:enabled=”false”
입력 상자 설정 편집 불가
3.편집 상자 에 그림 보이 기
지난 편 에 서 는 TextView 에 그림 을 추가 하 는 방법 에 대해 이야기 한 적 이 있 습 니 다.EditText 는 TextView 의 하위 클래스 이기 때문에 당연히 그림 을 추가 할 수 있 습 니 다.다만 EditText 에 그림 을 추가 하면 삭제 할 수 없습니다.그림 에서 보 듯 이 저 는 그림 옆 에 있 는 내용 을 편집 하여 글 을 쓸 수 있 습 니 다.
XML/HTML 코드
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textviewll"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:textColor="#FF0000"
android:drawableBottom="@drawable/jay"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
>
</EditText>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:textColor="#FF0000"
android:drawableTop="@drawable/jay"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
>
</EditText>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:textColor="#FF0000"
android:drawableLeft="@drawable/jay"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
>
</EditText>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:textColor="#FF0000"
android:drawableRight="@drawable/jay"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
>
</EditText>
</RelativeLayout >
4.소프트 키보드 Enter 키 설정그림 에서 보 듯 이 소프트 키보드 의 엔 터 버튼 스타일 을 수정 할 수 있 고 코드 에서 감청 버튼 으로 이 벤트 를 클릭 할 수 있 습 니 다.
자바 코드
package cn.m15.xys;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.TextView.OnEditorActionListener;
public class KeyBoardActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.keyboard);
EditText editText0 = (EditText)findViewById(R.id.txtTest0);
editText0.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
if (arg1 == EditorInfo.IME_ACTION_GO) {
Toast.makeText(KeyBoardActivity.this, " ' ' ",
Toast.LENGTH_SHORT).show();
}
return false;
}
});
EditText editText1 = (EditText)findViewById(R.id.txtTest1);
editText1.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
if (arg1 == EditorInfo.IME_ACTION_SEARCH) {
Toast.makeText(KeyBoardActivity.this, " ' ' ",
Toast.LENGTH_SHORT).show();
}
return false;
}
});
EditText editText2 = (EditText)findViewById(R.id.txtTest2);
editText2.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
if (arg1 == EditorInfo.IME_ACTION_SEND) {
Toast.makeText(KeyBoardActivity.this, " ' ' ",
Toast.LENGTH_SHORT).show();
}
return false;
}
});
EditText editText3 = (EditText)findViewById(R.id.txtTest3);
editText3.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
if (arg1 == EditorInfo.IME_ACTION_NEXT) {
Toast.makeText(KeyBoardActivity.this, " ' ' ",
Toast.LENGTH_SHORT).show();
}
return false;
}
});
EditText editText4 = (EditText)findViewById(R.id.txtTest4);
editText4.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
if (arg1 == EditorInfo.IME_ACTION_DONE) {
Toast.makeText(KeyBoardActivity.this, " ' ' ",
Toast.LENGTH_SHORT).show();
}
return false;
}
});
EditText editText5 = (EditText)findViewById(R.id.txtTest5);
editText5.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
if (arg1 == EditorInfo.IME_ACTION_UNSPECIFIED) {
Toast.makeText(KeyBoardActivity.this, " ' ' ",
Toast.LENGTH_SHORT).show();
}
return false;
}
});
super.onCreate(savedInstanceState);
}
}
소프트 키보드 클릭 이벤트 감청XML/HTML 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textviewll"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:id="@+id/txtTest0"
android:imeOptions="actionGo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint=" - "
></EditText>
<EditText android:id="@+id/txtTest1"
android:imeOptions="actionSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint=" - "
></EditText>
<EditText android:id="@+id/txtTest2"
android:imeOptions="actionSend"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint=" - "
></EditText>
<EditText android:id="@+id/txtTest3"
android:imeOptions="actionNext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint=" - "
></EditText>
<EditText android:id="@+id/txtTest4"
android:imeOptions="actionDone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint=" - "
></EditText>
<EditText android:id="@+id/txtTest5"
android:imeOptions="actionUnspecified"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint=" - "
></EditText>
</LinearLayout>
5.소프트 키보드 의 버튼 이 벤트 를 감청프로젝트 를 할 때 가끔 은 사용자 가 내용 을 입력 할 때 검 사 를 해 야 합 니 다.예 를 들 어 사용자 가 합 법 적 이지 않 은 내용 을 입력 하여 EditText 에 표시 하지 않 으 면 addTextChanged Listener 를 사용 하여 사용자 의 입력 상 태 를 감청 해 야 합 니 다.감청 에서 사용자 가 입력 한 내용 을 바 꾸 거나 입력 내용 이 합 법 적 이지 않다 는 것 을 알려 줄 수 있다.그림 에서 보 듯 이 제 입력 동작 은 정상 적 인 감청 을 받 을 수 있 습 니 다.사용자 가 입력 한 내용 의 정상 적 인 절차 인 beforetextChanged() -》onTextChanged() -》after TextChanged()다음 알림 화면 그리 기 가 화면 에 표시 되 기 때문에 이 세 가지 방법 에서 사용자 가 입력 한 내용 을 수정 하거나 사용자 가 입력 한 내용 을 캡 처 할 수 있 습 니 다.
자바 코드
package cn.m15.xys;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;
public class MonitorKeyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.monitorkey);
EditText editText = (EditText)findViewById(R.id.monitor_edit_text0);
final TextView textView0 = (TextView)findViewById(R.id.monitor_text0);
final TextView textView1 = (TextView)findViewById(R.id.monitor_text1);
final TextView textView2 = (TextView)findViewById(R.id.monitor_text2);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence text, int start, int before, int count) {
//text
//start
//before 0
//count
textView1.setText(" [ " + text.toString() + " ] [ " + start + " ] [ " + count+" ]");
}
@Override
public void beforeTextChanged(CharSequence text, int start, int count,int after) {
//text
//start
//count 0
//after
System.out.println(text.toString());
textView0.setText(" [ " + text.toString() + " ] [ " + start + " ] [" + after + " ]");
}
@Override
public void afterTextChanged(Editable edit) {
//edit
textView2.setText(" [" + edit.toString()+" ] ");
}
});
super.onCreate(savedInstanceState);
}
}
XML/HTML 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textviewll"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/monitor_text0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18dip"
android:textColor="#FF0000"/>
<TextView
android:id="@+id/monitor_text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18dip"
android:textColor="#FF0000"
/>
<TextView
android:id="@+id/monitor_text2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18dip"
android:textColor="#FF0000"
/>
<EditText
android:id="@+id/monitor_edit_text0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint=" "/>
</LinearLayout>
이 글 을 통 해 안 드 로 이 드 RditText 에 대한 지식 을 습득 할 수 있 기 를 바 랍 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.