从EditText获取字符串不起作用,返回空字符串

时间:2018-03-16 10:43:34

标签: java android

在android studio项目中,我需要在edittext中获取用户输入。这是我的代码 Xml文件

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:id="@+id/amount"
    android:layout_below="@+id/title"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="46dp" />
.java文件中的

button.setOnClickListener(new View.OnClickListener() {
    EditText amount = (EditText) findViewById(R.id.amount);
    String amount_text =amount.getText().toString();

    @Override
    public void onClick(View v) {
        Toast.makeText(betNow.this,amount_text ,Toast.LENGTH_LONG).show();
    }
});

每次返回空Toast

5 个答案:

答案 0 :(得分:2)

您需要从 amount_text 内的EditText中检索onClick(View v),如下面的代码

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            EditText amount = (EditText) findViewById(R.id.amount);
            String amount_text = amount.getText().toString();
            Toast.makeText(betNow.this, amount_text, Toast.LENGTH_LONG).show();


        }
    });

答案 1 :(得分:2)

我明白了......它之前没有用,因为我试图在用户点击按钮之前获得价值,现在我改变了这样的代码

button.setOnClickListener(new View.OnClickListener() {


    @Override
    public void onClick(View v) {
    final EditText amount = (EditText) findViewById(R.id.amount);

    final String amount_text =amount.getText().toString();
 Toast.makeText(betNow.this,amount_text ,Toast.LENGTH_LONG).show();



    }
});

工作正常

答案 2 :(得分:1)

不要在onClick()

中初始化editText
EditText amount = (EditText) findViewById(R.id.amount);


button.setOnClickListener(new View.OnClickListener() {
       @Override
        public void onClick(View v) {

        String amount_text =amount.getText().toString();
 Toast.makeText(betNow.this,amount_text ,Toast.LENGTH_LONG).show();

        }
    });

答案 3 :(得分:1)

在onClickListener

之外找到EditText
 EditText amount = (EditText) findViewById(R.id.amount);

  button.setOnClickListener(new View.OnClickListener() {


        String amount_text =amount.getText().toString();





        @Override
        public void onClick(View v) {
 Toast.makeText(betNow.this,amount_text ,Toast.LENGTH_LONG).show();



        }
    });

答案 4 :(得分:0)

将getText放在onClick之外时会出现问题。 你应该放String amount_text = amount.getText().toString();onClick中再试一次。