如果我的 android activity 中的控件无法正常工作
if controls in my android activity not working properly
在我的 android 项目中,即 activity 我使用了三个 if 条件,我检查了三个 if 条件,但是三个
条件实际上为真,但控制未进入下一个(第二和第三)语句。
代码:
btnmangerphoto.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
countMngr=1;
RestaurentName=edtRestaurantName.getText().toString();
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);
// ManagerPhoto="ok";
//new LongRunningedeleteonetimedeal().execute();
//count=1;
}
});
btncomapnylogo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
countLogo=2;
RestaurentName=edtRestaurantName.getText().toString();
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);
/* RestaurentName=edtRestaurantName.getText().toString();
NamePrefix=edtNamePrefix.getText().toString();
FirstName=edtFirstName.getText().toString();
LastName=edtLastName.getText().toString();
Telephone1=edtFirstNumber.getText().toString();
Telephone2=edtSecondNumber.getText().toString();
Telephone3=edtThirdNumber.getText().toString();
Email=edtEmail.getText().toString();
AddressLine1=edtAddressLine1.getText().toString();
AddressLine2=edtAddressLine2.getText().toString();
Speciality=edtSpeciality.getText().toString();
Cuisine = spinner.getSelectedItemsAsString();
*/
}
});
//save Company Photos
btnextraphotos.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
countCphoto=3;
RestaurentName=edtRestaurantName.getText().toString();
//Toast.makeText(ViewProvider.this, "imagecompanyphoto" , Toast.LENGTH_LONG).show();
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);
}
});
if(countCphoto==3){
cmpnayencodedString = Base64.encodeToString(byte_arr, 0);
nameValuePairs.add(new BasicNameValuePair("image",cmpnayencodedString));
Toast.makeText(ViewProvider.this, "cphoto=" +fileName , Toast.LENGTH_SHORT).show();
new LongRunningSaveCompanyPhotos().execute();
}
if(countMngr==1){
mngrphotoencodedString= Base64.encodeToString(byte_arr, 0);
Toast.makeText(ViewProvider.this, "mangr" + fileName , Toast.LENGTH_SHORT).show();
nameValuePairs.add(new BasicNameValuePair("image",mngrphotoencodedString));
//new LongRunningSaveCompanyPhotos().execute();
new LongRunningSaveManagerPhoto().execute();
}
if(countLogo==2) {
logoFilename=fileName;
Toast.makeText(ViewProvider.this, "logo=" + logoFilename , Toast.LENGTH_SHORT).show();
}
我完全不确定,你的问题是什么,但据我所知,你应该试试日志记录。
只要在每个if条件下做一个log语句即可。
例如
if (countLogo == 2) {
Log.v("countLogo", String.valueOf(countLogo));
logoFileName = fileName;
// ...
}
或者,您可以将日志记录放在您的 if 条件之上
如果你的条件为假,控制是不可能通过的。同样,如果您的条件为真,则必须进入内部。
根据您的陈述,您的第一个条件已通过,这意味着 countCphoto=3
但是第二个条件和第三个条件都不进去,显然条件不成立
你能试试简单的吗
Toast.MakeText(....
用 countMngr 看看它是否真的是 1?
也可以在条件之前对 CountLogo 进行同样的尝试,让我知道值...
在调用这段代码之前的一种方法中,这个值有可能被更改或以某种方式重新初始化。
希望以上建议对您有所帮助!
在我的 android 项目中,即 activity 我使用了三个 if 条件,我检查了三个 if 条件,但是三个 条件实际上为真,但控制未进入下一个(第二和第三)语句。
代码:
btnmangerphoto.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
countMngr=1;
RestaurentName=edtRestaurantName.getText().toString();
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);
// ManagerPhoto="ok";
//new LongRunningedeleteonetimedeal().execute();
//count=1;
}
});
btncomapnylogo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
countLogo=2;
RestaurentName=edtRestaurantName.getText().toString();
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);
/* RestaurentName=edtRestaurantName.getText().toString();
NamePrefix=edtNamePrefix.getText().toString();
FirstName=edtFirstName.getText().toString();
LastName=edtLastName.getText().toString();
Telephone1=edtFirstNumber.getText().toString();
Telephone2=edtSecondNumber.getText().toString();
Telephone3=edtThirdNumber.getText().toString();
Email=edtEmail.getText().toString();
AddressLine1=edtAddressLine1.getText().toString();
AddressLine2=edtAddressLine2.getText().toString();
Speciality=edtSpeciality.getText().toString();
Cuisine = spinner.getSelectedItemsAsString();
*/
}
});
//save Company Photos
btnextraphotos.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
countCphoto=3;
RestaurentName=edtRestaurantName.getText().toString();
//Toast.makeText(ViewProvider.this, "imagecompanyphoto" , Toast.LENGTH_LONG).show();
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);
}
});
if(countCphoto==3){
cmpnayencodedString = Base64.encodeToString(byte_arr, 0);
nameValuePairs.add(new BasicNameValuePair("image",cmpnayencodedString));
Toast.makeText(ViewProvider.this, "cphoto=" +fileName , Toast.LENGTH_SHORT).show();
new LongRunningSaveCompanyPhotos().execute();
}
if(countMngr==1){
mngrphotoencodedString= Base64.encodeToString(byte_arr, 0);
Toast.makeText(ViewProvider.this, "mangr" + fileName , Toast.LENGTH_SHORT).show();
nameValuePairs.add(new BasicNameValuePair("image",mngrphotoencodedString));
//new LongRunningSaveCompanyPhotos().execute();
new LongRunningSaveManagerPhoto().execute();
}
if(countLogo==2) {
logoFilename=fileName;
Toast.makeText(ViewProvider.this, "logo=" + logoFilename , Toast.LENGTH_SHORT).show();
}
我完全不确定,你的问题是什么,但据我所知,你应该试试日志记录。
只要在每个if条件下做一个log语句即可。 例如
if (countLogo == 2) {
Log.v("countLogo", String.valueOf(countLogo));
logoFileName = fileName;
// ...
}
或者,您可以将日志记录放在您的 if 条件之上
如果你的条件为假,控制是不可能通过的。同样,如果您的条件为真,则必须进入内部。
根据您的陈述,您的第一个条件已通过,这意味着 countCphoto=3
但是第二个条件和第三个条件都不进去,显然条件不成立
你能试试简单的吗 Toast.MakeText(.... 用 countMngr 看看它是否真的是 1?
也可以在条件之前对 CountLogo 进行同样的尝试,让我知道值...
在调用这段代码之前的一种方法中,这个值有可能被更改或以某种方式重新初始化。
希望以上建议对您有所帮助!