Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java getLine1Number中的空检查结果无法解析或不是字段_Java_Android_Telephonymanager - Fatal编程技术网

Java 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

我真的不知道为什么会这样。似乎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;
        }
抛出错误: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)