安卓开发踩坑记录_获取EditText的text引发的空指针问题

先看一下我们想要实现的效果:

 

先看一下,下面错误的写法

//界面A的button点击后的代码

public void A(View v)

{

   EditText text=(EditText)findViewById(R.id.text);

    text.getText().toSting();

}

 

    看着代码逻辑好像没有任何问题,其实这样会导致EditText报错,空指针的问题。

造成这个问题的原因是findViewById()这个方法默认是从A界面中来获取ID,而我们的EditText另外一个界面中,当然获取不到EditText的内容啦。

 

解决办法:使用View.inflate()方法

代码逻辑:

1、首先使用View.inflate()这个方法加载我们另外一个界面的xml文件到变量中

2、接着在从变量中获取ID,然后就可以获得内容了。

实现代码:

public void A(View v)

{

View b = View.inflate(MainActivity.this,R.layout.B,null)

EditText text = (EditText)b.findViewById(R.id.edit)

String ttext=text.getText().toString();

Toast.makeText(getApplicationContext(),ttext,2000).show();

}

 

这样就能获取到另外一个xml中的EditText的内容了

posted on 2025-06-03 12:42  小沙盒工作室  阅读(32)  评论(0)    收藏  举报