텍스트 편집 필드의 값 가져오기
UI 요소를 만드는 방법을 배우고 있습니다.텍스트 편집 입력 필드를 몇 개 만들었습니다.단추를 클릭하면 해당 입력 필드에 입력된 내용을 캡처합니다.
<EditText android:id="@+id/name" android:width="220px" />
그게 내 분야야.어떻게 내용을 얻을 수 있습니까?
getText()를 사용하여:
Button mButton;
EditText mEdit;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button)findViewById(R.id.button);
mEdit = (EditText)findViewById(R.id.edittext);
mButton.setOnClickListener(
new View.OnClickListener()
{
public void onClick(View view)
{
Log.v("EditText", mEdit.getText().toString());
}
});
}
고객으로부터 가치 창출EditText
안드로이드에서의 제어. EditText
getText
가치를 얻기 위한 자산 사용EditText
:
EditText txtname = findViewById(R.id.name);
String name = txtname.getText().toString();
"mEdit"를 EditText 객체로 호출할 때 이 코드를 사용해야 할 것 같습니다.
myActivity.this.mEdit.getText().toString()
컴파일러가 다음 중 무엇을 알고 있는지 확인하십시오.EditText
통화 및 사용할 수 있습니다.
나는 이것이 효과가 있기를 바랍니다.
Integer.valueOf(mEdit.getText().toString());
나는 노력했다.Integer.getInteger()
대신 방법valueOf()
효과가 없었습니다.
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button rtn = (Button)findViewById(R.id.button);
EditText edit_text = (EditText)findViewById(R.id.edittext1);
rtn .setOnClickListener(
new View.OnClickListener()
{
public void onClick(View view)
{
Log.v("EditText value=", edit_text.getText().toString());
}
});
}
버터 나이프도 볼 수 있습니다.주석을 사용하여 상용판 코드의 양을 줄이는 것을 목표로 합니다.다음은 간단한 예입니다.
public class ExampleActivity extends ActionBarActivity {
@InjectView(R.id.name)
EditText nameEditText;
@InjectView(R.id.email)
EditText emailEditText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_example);
Butterknife.inject(this);
}
@OnClick(R.id.submit)
public void onSubmit() {
Editable name = nameEditText.getText();
Editable email = emailEditText.getText();
}
}
다음 종속성을 추가하기만 하면 됩니다.build.gradle
:
compile 'com.jakewharton:butterknife:x.y.z'
대안으로 Android Annotation도 있습니다.
최단 및 단순
getText(editText);
getText(button);
getText(textView);
약간의 해결 방법
기본 활동에서 메소드를 만들거나 없으면 기본 활동을 만듭니다.
public class BaseActivity extends AppCompatActivity{
public String getText(TextView tv) {
return tv.getText().toString().trim();
}
}
그리고 이 기본 활동으로 모든 활동을 확장합니다.
public class YourActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState){
getText(editText);
getText(button);
getText(textView);
}
}
참고:EditText
,Button
확장된TextView
그래서 제가 만든 것은getText(TextView tv)
.
문자열 값 = YourEditText.getText().toString;
보다 고급 방법은 버터나이프 바인드 뷰를 사용하는 것입니다.이렇게 하면 중복 코드가 제거됩니다.
종속성 아래의 Gradle에 이 두 줄을 추가합니다.
compile('com.jakewharton:butterknife:8.5.1') {
exclude module: 'support-compat'
}
apt 'com.jakewharton:butterknife-compiler:8.5.1'
그러면 동기화.기본 활동에서 편집 텍스트 바인딩 예제
import butterknife.BindView;
import butterknife.ButterKnife;
public class MainActivity {
@BindView(R.id.name) EditTextView mName;
...
public void onCreate(Bundle savedInstanceState){
ButterKnife.bind(this);
...
}
}
하지만 이것은 여러분이 좀 더 편안함을 느끼거나 많은 데이터를 사용하기 시작하면 대안이 될 수 있습니다.
1단계: activity_main.xml 이름을 사용하여 레이아웃
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
tools:context=".MainActivity"
android:background="#c6cabd"
>
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="17dp"
android:textColor="#ff0e13"
/>
<EditText
android:id="@+id/et"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv"
android:hint="Input your country"
/>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Get EditText Text"
android:layout_below="@id/et"
/>
</RelativeLayout>
2단계: Main.class 클래스 만들기
public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btn);
final TextView tv = (TextView) findViewById(R.id.tv);
final EditText et = (EditText) findViewById(R.id.et);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String country = et.getText().toString();
tv.setText("Your inputted country is : " + country);
}
});
}
}
만약 당신이 Kotlin을 사용하고 있고 그것을 제네릭으로 만들고 싶다면, 당신은 확장 기능을 사용할 수 있습니다.
확장 기능:
fun EditText.getTextString(): String {
this.text.toString()
}
편집 텍스트에서 직접 이 메서드를 호출합니다.
yourEditText.getTextString()
이 코드를 사용해 보십시오.
final EditText editText = findViewById(R.id.name); // your edittext id in xml
Button submit = findViewById(R.id.submit_button); // your button id in xml
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
String string = editText.getText().toString();
Toast.makeText(MainActivity.this, string, Toast.LENGTH_SHORT).show();
}
});
Button kapatButon = (Button) findViewById(R.id.islemButonKapat);
Button hesaplaButon = (Button) findViewById(R.id.islemButonHesapla);
Button ayarlarButon = (Button) findViewById(R.id.islemButonAyarlar);
final EditText ders1Vize = (EditText) findViewById(R.id.ders1Vize);
final EditText ders1Final = (EditText) findViewById(R.id.ders1Final);
final EditText ders1Ortalama = (EditText) findViewById(R.id.ders1Ortalama);
//
final EditText ders2Vize = (EditText) findViewById(R.id.ders2Vize);
final EditText ders2Final = (EditText) findViewById(R.id.ders2Final);
final EditText ders2Ortalama = (EditText) findViewById(R.id.ders2Ortalama);
//
final EditText ders3Vize = (EditText) findViewById(R.id.ders3Vize);
final EditText ders3Final = (EditText) findViewById(R.id.ders3Final);
final EditText ders3Ortalama = (EditText) findViewById(R.id.ders3Ortalama);
//
final EditText ders4Vize = (EditText) findViewById(R.id.ders4Vize);
final EditText ders4Final = (EditText) findViewById(R.id.ders4Final);
final EditText ders4Ortalama = (EditText) findViewById(R.id.ders4Ortalama);
//
final EditText ders5Vize = (EditText) findViewById(R.id.ders5Vize);
final EditText ders5Final = (EditText) findViewById(R.id.ders5Final);
final EditText ders5Ortalama = (EditText) findViewById(R.id.ders5Ortalama);
//
final EditText ders6Vize = (EditText) findViewById(R.id.ders6Vize);
final EditText ders6Final = (EditText) findViewById(R.id.ders6Final);
final EditText ders6Ortalama = (EditText) findViewById(R.id.ders6Ortalama);
//
final EditText ders7Vize = (EditText) findViewById(R.id.ders7Vize);
final EditText ders7Final = (EditText) findViewById(R.id.ders7Final);
final EditText ders7Ortalama = (EditText) findViewById(R.id.ders7Ortalama);
//
/*
*
*
* */
kapatButon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// kapatma islemi
Toast.makeText(getApplicationContext(), "kapat",
Toast.LENGTH_LONG).show();
}
});
/*
*
*
* */
hesaplaButon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// hesap islemi
int d1v = Integer.parseInt(ders1Vize.getText().toString());
int d1f = Integer.parseInt(ders1Final.getText().toString());
int ort1 = (int) (d1v * 0.4 + d1f * 0.6);
ders1Ortalama.setText("" + ort1);
//
int d2v = Integer.parseInt(ders2Vize.getText().toString());
int d2f = Integer.parseInt(ders2Final.getText().toString());
int ort2 = (int) (d2v * 0.4 + d2f * 0.6);
ders2Ortalama.setText("" + ort2);
//
int d3v = Integer.parseInt(ders3Vize.getText().toString());
int d3f = Integer.parseInt(ders3Final.getText().toString());
int ort3 = (int) (d3v * 0.4 + d3f * 0.6);
ders3Ortalama.setText("" + ort3);
//
int d4v = Integer.parseInt(ders4Vize.getText().toString());
int d4f = Integer.parseInt(ders4Final.getText().toString());
int ort4 = (int) (d4v * 0.4 + d4f * 0.6);
ders4Ortalama.setText("" + ort4);
//
int d5v = Integer.parseInt(ders5Vize.getText().toString());
int d5f = Integer.parseInt(ders5Final.getText().toString());
int ort5 = (int) (d5v * 0.4 + d5f * 0.6);
ders5Ortalama.setText("" + ort5);
//
int d6v = Integer.parseInt(ders6Vize.getText().toString());
int d6f = Integer.parseInt(ders6Final.getText().toString());
int ort6 = (int) (d6v * 0.4 + d6f * 0.6);
ders6Ortalama.setText("" + ort6);
//
int d7v = Integer.parseInt(ders7Vize.getText().toString());
int d7f = Integer.parseInt(ders7Final.getText().toString());
int ort7 = (int) (d7v * 0.4 + d7f * 0.6);
ders7Ortalama.setText("" + ort7);
//
Toast.makeText(getApplicationContext(), "hesapla",
Toast.LENGTH_LONG).show();
}
});
언급URL : https://stackoverflow.com/questions/4531396/get-value-of-a-edit-text-field
'programing' 카테고리의 다른 글
루비에서 지도와 수집의 차이점은 무엇입니까? (0) | 2023.06.02 |
---|---|
Angular HttpClient에 HTTP 헤더를 추가해도 헤더가 전송되지 않습니다. 왜죠? (0) | 2023.06.02 |
비트맵 개체에 이미지를 로드하는 동안 이상한 메모리 부족 문제가 발생했습니다. (0) | 2023.06.02 |
Ruby에서 메서드를 매개 변수로 전달 (0) | 2023.06.02 |
CLI를 사용하여 구성 요소를 삭제하는 가장 좋은 방법은 무엇입니까? (0) | 2023.06.02 |