如果我的 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 进行同样的尝试,让我知道值...

在调用这段代码之前的一种方法中,这个值有可能被更改或以某种方式重新初始化。

希望以上建议对您有所帮助!