Java getLine1Number中的空检查结果无法解析或不是字段
我真的不知道为什么会这样。似乎getLine1Number没有被实例化,但似乎对它的第二个引用不需要它(当我注释掉空检查时,它不会抛出错误) 工作:Java getLine1Number中的空检查结果无法解析或不是字段,java,android,telephonymanager,Java,Android,Telephonymanager,我真的不知道为什么会这样。似乎getLine1Number没有被实例化,但似乎对它的第二个引用不需要它(当我注释掉空检查时,它不会抛出错误) 工作: public class StartActivity extends Activity implements OnClickListener { Button goButton; Context c; boolean isAirPlaneMode, isMDNPresent = false;//boolean values
public class StartActivity extends Activity implements OnClickListener {
Button goButton;
Context c;
boolean isAirPlaneMode, isMDNPresent = false;//boolean values to check for airplane mode and if the sim populates the MDN
int simState;
TelephonyManager tm;
boolean NetworkConnection = false;//boolean to check the Network Availability
AlertDialog mConfirmAlert = null;
TextView text;
TextView mUpdatetext;
int version;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
version = android.os.Build.VERSION.SDK_INT;
tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
// to read the SIM state
simState = tm.getSimState();
System.out.println("Sim State" + simState);
//if (tm.getLine1Number = null) {
//isMDNPresent = true;
//}
// to check for MDN
if (tm.getLine1Number().equalsIgnoreCase("")) {
isMDNPresent = true;
}
抛出错误:getLine1Number无法解析或不是字段
public class StartActivity extends Activity implements OnClickListener {
Button goButton;
Context c;
boolean isAirPlaneMode, isMDNPresent = false;//boolean values to check for airplane mode and if the sim populates the MDN
int simState;
TelephonyManager tm;
boolean NetworkConnection = false;//boolean to check the Network Availability
AlertDialog mConfirmAlert = null;
TextView text;
TextView mUpdatetext;
int version;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
version = android.os.Build.VERSION.SDK_INT;
tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
// to read the SIM state
simState = tm.getSimState();
System.out.println("Sim State" + simState);
if (tm.getLine1Number = null) {
isMDNPresent = true;
}
// to check for MDN
if (tm.getLine1Number().equalsIgnoreCase("")) {
isMDNPresent = true;
}
应该是
if (tm.getLine1Number() == null) {
注意工作部件中的()是一种方法
if (tm.getLine1Number().
在非工作代码中,它用作变量(no“()”)
您还希望比较不初始化,因此将其从
if (tm.getLine1Number = null)
到
在第一个地方添加额外的“=”你写的“tm.getLine1Number=null”就像它是一个字段一样。在第二个地方你写的“tm.getLine1Number().equalsIgnoreCase”(“”)就像它是一个方法一样。这就是为什么一个可以工作,一个不能工作的原因。好的。(谢谢-这对我来说应该很明显。)我唯一的问题是当我使用时:if(tm.getLine1Number==null){isMDNPresent=true;}我得到:“getLine1Number无法解析或不是字段”是的,对不起,我复制了您的代码,没有将“()”添加回。我已经编辑过。我如何才能null检查getLine1Number的值?如果(tm.getLine1Number()==null){…}请注意,TelephonyManager没有该字段getLine1Number(或者可能有,但对您的类不可见-大多数情况下,它们没有这样的字段-没有好的程序员名称或这样的变量)。它们只有一个具有该名称的方法。
if (tm.getLine1Number = null)
if (tm.getLine1Number() == null)