我已经制作了这个代码,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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Java使用'按值传递'.这意味着,值的DEVICE
传递给你的函数,而不是参考.虽然您要为参数指定值string
,但永远不会将其赋值给DEVICE
.
您必须disp
从函数返回值并将其赋值给DEVICE
像这样定义你的功能
public String checktypezip()
Run Code Online (Sandbox Code Playgroud)
并称之为这样
DEVICE = checktypezip();
Run Code Online (Sandbox Code Playgroud)
最后checktypezip
,你必须添加return disp
在旁注:
while (DEVICE == null){
Log.v("Check","Check non completo");
}
Run Code Online (Sandbox Code Playgroud)
这将无限期地阻塞主线程并在5秒后导致ANR.我会建议更换while
与if
归档时间: |
|
查看次数: |
1099 次 |
最近记录: |