edittext.getText()。getString()始终为空

时间:2018-04-06 15:02:53

标签: java android input android-edittext

我正在研究Android的笔记应用程序。我试图将用户写入EditText的文本保存到变量inputText中。但变量总是""。我真的很困惑。有任何想法吗? (问题可能在Setphase2方法中。)

package vitosoft.notes;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.InputType;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final int[] phase = {1};
    final String[] text_encode = {""};
    final Button r_button = findViewById(R.id.rightButton);
    final Button l_button = findViewById(R.id.leftButton);
    final EditText input = findViewById(R.id.editText);
    final TextView task = findViewById(R.id.task);

    r_button.setOnClickListener(new View.OnClickListener() {
        @SuppressLint("SetTextI18n")
        public void onClick(View v) {
            if (phase[0] == 1) {
                phase[0] = 2;
                text_encode[0] = Setphase2(r_button, l_button, task, input);
            }
        }
    });

    l_button.setOnClickListener(new View.OnClickListener() {
        @SuppressLint("SetTextI18n")
        public void onClick(View v) {
            if (phase[0] == 2) {
                phase[0] = 1;
                Setphase1(text_encode[0], r_button, l_button, task, input);

            }
        }
    });
    }

public String Setphase2(Button r,Button l,TextView t,EditText i) {
    i.setText("");
    r.setText(R.string.upload);
    l.setText(R.string.edit);
    t.setText(R.string.key_task);
    String inputText = i.getText().toString();
    Log.d("UserText", "Entry text is:" + inputText);
    i.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
    return inputText;
}
public void Setphase1 (String original, Button r,Button l,TextView t,EditText i){
    i.setText(original);
    r.setText(R.string.encode);
    l.setText(R.string.decode);
    t.setText(R.string.entry_task);
    i.setInputType(InputType.TYPE_CLASS_TEXT);

}
}

3 个答案:

答案 0 :(得分:1)

Android edittext.getText()。toString()始终为空。因为您将其指定为空。

i.setText("");

在上述方法中删除以下行。

{{1}}

答案 1 :(得分:1)

您正在调用方法i.setText(“”);在Setphase2方法的开头。

答案 2 :(得分:1)

Setphase2方法

i.setText("");
r.setText(R.string.upload);
l.setText(R.string.edit);
t.setText(R.string.key_task);
String inputText = i.getText().toString();

您将i设置为"",然后将inputText设置为i