簡體   English   中英

JAVA-變量始終為null

[英]JAVA - Variable is always null

我已經編寫了此代碼,其中如果文件存在或不存在,變量DEVICE都會更改。 因此,我編寫了此代碼,但變量DEVICE始終為null

public class MainActivity extends AppCompatActivity{

    String DEVICE;

 @Override
    protected void onCreate(Bundle savedInstanceState) {

        apply = (Button) findViewById(R.id.apply);
        apply.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    checktypezip(DEVICE);
                    while (DEVICE == null){
                        Log.v("Check","Check non completo");
                    }
            }
        });

    }

    public void checktypezip(String string){
        String percorso = Environment.getExternalStorageDirectory().getPath()+"/BAC/.unzipfile/";

        File normalzip = new File (percorso+"desc.txt");
        File flashzip = new File (percorso+"/system/media/bootanimation.zip");
        File samsung = new File (percorso+"/bootsamsung.qmg");
        File flashsamsung = new File (percorso+"/system/media/bootsamsung.qmg");
        String disp;

        disp=string;
        if (normalzip.exists()){
            disp = "Normal";
            string=disp;
        }
        else if (flashzip.exists()){
            disp = "Flashnormal";
            string=disp;
        }
        else if (samsung.exists()){
            disp = "Samsung";
            string=disp;
        }
        else if (flashsamsung.exists()){
            disp = "Samsungflash";
            string=disp;
        }
        else
        {
            disp = "Unknown";
            string=disp;
        }

    }

}

Java使用“按值傳遞”。 這意味着DEVICE將傳遞給您的函數,而不是引用。 盡管您正在為參數string分配一個值,但永遠不會將其分配給DEVICE

您必須從函數中返回disp的值並將其分配給DEVICE

這樣定義你的功能

public String checktypezip()

並這樣稱呼它

DEVICE = checktypezip();

checktypezip的末尾,您必須添加return disp

附帶說明:

while (DEVICE == null){
    Log.v("Check","Check non completo");
}

這將無限期阻塞您的主線程,並在5秒鍾后導致ANR。 我會建議更換whileif

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM