问题很简单。 但我想知道我们究竟在哪里引用gui元素? 至于哪个是定义的最佳位置:
final EditText edit = (EditText) findViewById(R.id.text_xyz);
edit.getText.tostring();
当我在默认的oncreate()内部尝试时,我得到空值。 因此,对于最佳实践,您是否建议使用单独的类来引用main.xml中已定义的gui元素。从这里我们可以调用这些元素的各种方法,如gettext或settext?
答案 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 );
}
}
那里!辩论已经解决!