我是android编程/开发的新手,只掌握Java的基础知识,但多年来使用不同的语言,如PHP,JavaScript和一些C#。我只是想知道我可以将这段代码缩短为一行吗?没有制作另一个名为" test"的变量。仅用于测试目的..然后将这一个变量用于我想要的任何内容,例如auth system。
public void signIn(View view) {
EditText username = (EditText) findViewById(R.id.usernameField);
String test = username.getText().toString();
Toast.makeText(MainActivity.this, test, Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:1)
使用ButterKnife。
findViewById
消除@BindView
来电。@OnClick
和其他方法注释方法来消除侦听器的匿名内部类。
@BindView(R.id.usernameField)
EditText username;
...
public void signIn(View view) {
Toast.makeText(this, username.getText().toString(), Toast.LENGTH_SHORT).show();
}
//这在类
中声明为全局@BindView(R.id.usernameField) TextView title;
//基本的一个在onCreate中声明
EditText username;
username = (EditText)findViewById(R.id.usernameField); // in onCreate
另一个替代库 - Databinding
答案 1 :(得分:0)
解决方案
public void signIn(View view) {
String test = ((EditText) view.findViewById(R.id.usernameField)).getText().toString();
Toast.makeText(MainActivity.this, test, Toast.LENGTH_SHORT).show();
}