如何从EditText获取文本?

时间:2009-12-29 12:49:26

标签: android user-interface android-edittext

问题很简单。 但我想知道我们究竟在哪里引用gui元素? 至于哪个是定义的最佳位置:

final EditText edit =  (EditText) findViewById(R.id.text_xyz);
 edit.getText.tostring();

当我在默认的oncreate()内部尝试时,我得到空值。 因此,对于最佳实践,您是否建议使用单独的类来引用main.xml中已定义的gui元素。从这里我们可以调用这些元素的各种方法,如gettext或settext?

7 个答案:

答案 0 :(得分:23)

对您的问题最快的解决方案我认为您只是在getText上丢失了括号。只需将()添加到edit.getText().toString()即可解决此问题

答案 1 :(得分:17)

嗯,这取决于您的需求。我经常在活动中保留对小部件的引用(作为类字段) - 并在onCreate方法中设置它们。我认为这是个好主意 您的空值的原因可能是您在findViewById()方法中设置contentView()之前尝试拨打onCreate() - 请检查一下。

答案 2 :(得分:13)

如果您在setContentView()方法调用之前执行此操作,则值将为null。

这将导致null:

super.onCreate(savedInstanceState);

Button btn = (Button)findViewById(R.id.btnAddContacts);
String text = (String) btn.getText();

setContentView(R.layout.main_contacts);

虽然这样可以正常工作:

super.onCreate(savedInstanceState);
setContentView(R.layout.main_contacts);

Button btn = (Button)findViewById(R.id.btnAddContacts);
String text = (String) btn.getText();

答案 3 :(得分:3)

String fname = ((EditText)findViewById(R.id.txtFirstName)).getText().toString();
String lname = ((EditText)findViewById(R.id.txtLastName)).getText().toString();
((EditText)findViewById(R.id.txtFullName)).setText(fname + " "+lname);

答案 4 :(得分:3)

在setContentView()方法之后放置以下内容。

final EditText edit =  (EditText) findViewById(R.id.Your_Edit_ID);
String emailString = (String) edit.getText().toString();
Log.d("email",emailString);

答案 5 :(得分:0)

在Kotlin 1.3中

 val readTextFromUser = (findViewById(R.id.inputedText) as EditText).text.toString()

这将读取用户在UI屏幕上键入的当前文本

答案 6 :(得分:0)

将其放入您的MainActivity:

stu <- c(11,10,4,1) 
col <- c("Brown","Blue","Green","Gray") 
bplot <- barplot(stu, names.arg=col,
                      main="Eye Color Horizontal Bar Chart",
                      horiz = TRUE,beside = TRUE, xlim = c(0, max(stu) + 2)) 
zi <- as.matrix(stu) 
text(zi+0.25,bplot,labels = zi)

将其放在按钮或其他东西下

{
    public EditText bizname, storeno, rcpt, item, price, tax, total;
    public Button click, click2;
    int contentView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.main_activity );
        bizname = (EditText) findViewById( R.id.editBizName );
        item = (EditText) findViewById( R.id.editItem );
        price = (EditText) findViewById( R.id.editPrice );
        tax = (EditText) findViewById( R.id.editTax );
        total = (EditText) findViewById( R.id.editTotal );
        click = (Button) findViewById( R.id.button );
    }
}

那里!辩论已经解决!