这段代码可以缩短吗?

时间:2018-01-28 02:04:53

标签: java android

我是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();

}

2 个答案:

答案 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();

}