[android] 텍스트 편집 필드의 값 얻기

UI 요소를 만드는 방법을 배우고 있습니다. EditText 입력 필드를 몇 개 만들었습니다. 버튼을 클릭하면 해당 입력 필드에 입력 된 내용을 캡처하고 싶습니다.

<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 객체 “mEdit”을 호출 할 때이 코드를 사용해야한다고 생각합니다.

myActivity.this.mEdit.getText().toString()

컴파일러 EditText가 호출하고 사용할 것을 알고 있는지 확인하십시오 .


답변

EditText안드로이드 의 컨트롤에서 가치를 얻으십시오 . EditText getText가치를 얻기 위해 속성 사용 EditText:

EditText txtname = findViewById(R.id.name);
String name      =  txtname.getText().toString();


답변

나는 이것이 작동하기를 바랍니다.

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'

대안으로 AndroidAnnotations도 있습니다.


답변

가장 짧고 간단한

getText(editText);

getText(button);

getText(textView);

작은 해결 방법

BaseActivity에서 메소드를 작성하고없는 경우 BaseActivity를 작성하십시오.

public class BaseActivity extends AppCompatActivity{
    public String getText(TextView tv) {
        return tv.getText().toString().trim();
    }
}

이 BaseActivity로 모든 활동을 확장하십시오.

public class YourActivity extends BaseActivity {
  @Override
  public void onCreate(Bundle savedInstanceState){
     getText(editText);
     getText(button);
     getText(textView);
  }
}

그 주 EditText, Button확장 TextViewI 만 만들어 있도록 getText(TextView tv).