如何比较android studio中的Long类型数据

时间:2018-02-21 05:22:05

标签: java android

我想将手机中的IMEI号码与我声明的数据进行比较,但错误说:'运营商==不能应用于'java.lang.String','long' 我该如何解决这个问题?

MainActivity.java

public class MainActivity extends AppCompatActivity {

    TelephonyManager manager;
    private Button button;
    TextView textView;
    String IMEI;
    long IMEI2 = 356261058647361;

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

        button = (Button)findViewById(R.id.next);
        textView = (TextView)findViewById(R.id.textview1);

        manager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
        IMEI = manager.getDeviceId();

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {

                if(IMEI == IMEI2){
                    textView.setText("IMEI NUMBER : " + IMEI);

                }else{
                    textView.setText("data IMEI and IMEI2 did not match");
                }

            }
        });
    }

}

4 个答案:

答案 0 :(得分:3)

试试这个

 button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {

                if(IMEI2.equals(""+IMEI){
                    textView.setText("IMEI NUMBER : " + IMEI);

                }else{
                    textView.setText("data IMEI and IMEI2 did not match");
                }

            }
        });

答案 1 :(得分:3)

if(IMEI.equals(String.valueOf(IMEI2)){
    textView.setText("IMEI NUMBER : " + IMEI);
}else{
    textView.setText("data IMEI and IMEI2 did not match");
}

答案 2 :(得分:3)

使用数据类型长而不是长。在启动长/长数据类型时始终在值的末尾使用L并使用equals

进行检查
Long IMEI;
Long IMEI2 = 356261058647361L;

IMEI = Long.valueOf(manager.getDeviceId());

if (IMEI2.equals(IMEI)) {
    textView.setText("IMEI NUMBER : " + IMEI);
} else {
    textView.setText("data IMEI and IMEI2 did not match");
}

答案 3 :(得分:2)

在java中,您需要声明long IMEI2 = 356261058647361L;

您需要添加' L ' 。参考:Long type

Long.parseLong()

  

Long.parseLong()静态方法将字符串参数解析为a   signed decimal long并返回一个long值。

使用:

Long.parseLong(IMEI);

在if条件之前使用这种方式:long tmp = Long.parseLong(IMEI);

然后在if:

if (tmp == IMEI2)

参考:Long.parseLong()