EditText无法转换或无法获取

时间:2016-01-15 07:22:21

标签: java android android-edittext

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);
    username = (EditText) findViewById(R.id.Tusername);
    EditText password = (EditText) findViewById(R.id.Tpassword);
    Button login = (Button) findViewById(R.id.login);
    CheckBox show = (CheckBox) findViewById(R.id.checkme);
    if(show.isChecked()){

   password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

    }else{
        password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
    }

    login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           String usern = username.getText().toString();
            settUsername(usern);
            Intent intent = new Intent("display");
            startActivity(intent);
        }
    });

}
    public void settUsername(String u){
        usern = u;

    }

 public String getUsername(){
     return usern;
 }

这是我的login.java,我试图从edittext

中获取数据
public class display extends Activity {


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

    TextView v = (TextView) findViewById(R.id.usernd);
    Login l = new Login();
    String username = l.getUsername();
    v.setText("Welcome" + username);

}
}

display.java是我打印从编辑文本中获取的数据的地方!但它正在打印null。有人可以帮我弄这个吗!我甚至将我从edittext中提取的数据转换为字符串,但我仍然无法打印所有数据null

1 个答案:

答案 0 :(得分:1)

您正试图以错误的方式将数据从一个活动传递到另一个活动。您应该使用内置的意图机制:

Intent intent = new Intent(this, display.class);
intent.putExtra("username", usern);
startActivity(intent);    

在显示活动中,您可以通过以下方式检索它:

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

    TextView v = (TextView) findViewById(R.id.usernd);
    Intent intent = getIntent();
    String username = myIntent.getStringExtra("username");
    v.setText("Welcome" + username);

}

Ps:我还建议定义以大写字母开头的类名(例如Display而不是display)。这不是强制性的,但每个Java开发人员都使用这种方法来使代码更清晰。此外,您还可以在类名中添加额外信息,以便其他开发人员更好地了解您的课程应该做什么(在这种情况下,我会使用DisplayActivity而不仅仅是Display)。