web-dev-qa-db-ja.com

テキスト編集フィールドの値を取得

私はUI要素を作成する方法を学んでいます。いくつかのEditText入力フィールドを作成しました。ボタンをクリックすると、その入力フィールドに入力されたコンテンツをキャプチャします。

<EditText Android:id="@+id/name" Android:width="220px" />

それが私の分野です。コンテンツを入手するにはどうすればいいですか。

406
Harsha M V

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());
            }
        });
}
641
svdree

EditTextオブジェクトの "mEdit"を呼び出すときには、このコードを使用する必要があります。

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

どのEditTextを呼び出して使用するかをコンパイラが認識していることを確認してください。

19
Ahmed Lotfy

AndroidのEditTextコントロールから値を取得します。 EditTextgetTextプロパティは、値をEditTextにするために使用します。

EditText txtname = (EditText)findViewById(R.id.name);
String name      =  txtname.getText().toString();
13
Chandra Kumar
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());
            }
        });
}
10
user1554037

私はこれがうまくいくことを願っています:

Integer.valueOf(mEdit.getText().toString());

Integer.getInteger()ではなくvalueOf()メソッドを試しました - うまくいきませんでした。

バターナイフ もご覧になるとよいでしょう。注釈を使用して定型コードの量を減らすことを目的としています。これは簡単な例です:

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 もあります。

6
JJD

最短&シンプル -

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);
  }
}

EditTextButtonTextViewを拡張するので、私はgetText(TextView tv)のみを作成したことに注意してください。

2
Khemraj

より高度な方法は、butterknife bindviewを使うことです。これにより、冗長なコードが排除されます。

依存関係の下であなたのgradleに。この2行を追加してください。

compile('com.jakewharton:butterknife:8.5.1') {
        exclude module: 'support-compat'
    }
apt 'com.jakewharton:butterknife-compiler:8.5.1'

それから同期しなさい。 MainActivityでのバインディングエディットテキストの例

import butterknife.BindView;   
import butterknife.ButterKnife; 

public class MainActivity {

@BindView(R.id.name) EditTextView mName; 
...

   public void onCreate(Bundle savedInstanceState){
         ButterKnife.bind(this); 
         ...
   }

}

しかし、これは、あなたがより快適に感じるか、大量のデータを扱うようになったときの代替方法です。

このコードを試す

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();
    }
});
0
Himanshu itmca