我正在创建一个Android应用,通过displayEmailCaptureFragment()方法捕获用户的电子邮件。如果我已经捕获了用户的电子邮件,我不想提示用户再次输入他们的电子邮件。
我在MainActivity之后但在onCreate方法之前声明customerEmailAddress String:
@Override
public void onClick(View v) {
int currentPosition = pager.getCurrentItem();
switch (v.getId()) {
case R.id.right_arrow:
pager.setCurrentItem(currentPosition + 1);
break;
case R.id.left_arrow:
pager.setCurrentItem(currentPosition - 1);
break;
case R.id.download_resume_button:
customerEmailAddress = mPrefs.getString(EMAILKEY, null);
if (customerEmailAddress.equals(null)){
displayEmailCaptureFragment();
}
else {
showPurchaseDialog();
}
break;
}
}
然后我根据用户在应用程序中的响应操作获得了一个OnClick()方法。基本上,如果用户已经输入了他们的电子邮件地址,我会尝试在onClick之后允许某个活动。如果他们没有输入他们的电子邮件地址,那么我提示他们输入他们的电子邮件并将其保存到共享首选项。我使用了一个基本的if - else语句,但即使我分配了customerEmailAddress字符串,我仍然会生成空指针异常:
import scala.util.parsing.combinator.JavaTokenParsers
class SimpleParser(number: Int) extends JavaTokenParsers {
def base: Parser[Int] = literal("()").map(_ => number)
def pars: Parser[Int] = base | ("(" ~> pars <~ ")").map(_ + number)
def plus: Parser[Int] = "+" ~> expr
def expr: Parser[Int] = (pars ~ opt(plus).map(_.getOrElse(0))).map {
case first ~ rest => first + rest
}
}
object ParserWith3 extends SimpleParser(3)
感谢任何帮助!
答案 0 :(得分:4)
此代码错误 - 您无法在null对象上调用equals(...)或任何其他方法。
...
customerEmailAddress = mPrefs.getString(EMAILKEY, null);
if (customerEmailAddress.equals(null)){
...
请改为:
customerEmailAddress = mPrefs.getString(EMAILKEY, null);
if (customerEmailAddress == null){
...
或使用TextUtils:
customerEmailAddress = mPrefs.getString(EMAILKEY, null);
if (TextUtils.isEmpty(customerEmailAddress)){
...