2016-02-16 4 views
-1

В фрагменте у меня есть индикатор выполнения. Я хочу скрыть этот индикатор выполнения вне метода oncreateView(). Я пробовал код, но его не спряталКак получить доступ к представлениям за пределами oncreateView() в фрагменте

Пожалуйста, исправьте.

Вот мой код:

public class ChangeMobileOtp extends Fragment { 
 

 
    static TextView mobcode; 
 
    Button verify; 
 
    ProgressBar prgSpin; 
 

 
    @Override 
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
 
          Bundle savedInstanceState) { 
 
     View view = inflater.inflate(R.layout.change_mobile_code, container, 
 
       false); 
 

 
     mobcode = (TextView)view.findViewById(R.id.mobile_verificationtxt); 
 
     verify = (Button)view.findViewById(R.id.mverify_button); 
 
     prgSpin = (ProgressBar)view.findViewById(R.id.mobSpin); 
 
     prgSpin.setVisibility(view.VISIBLE); 
 

 
     return view; 
 

 
    } 
 

 

 
    public void recivedSms(String message) 
 
    { 
 
     try 
 
     { 
 

 
      mobcode.setText(message); 
 
      Log.d("otps", message); 
 
      prgSpin.setVisibility(View.GONE); // hide progress bar 
 

 
     } 
 
     catch (Exception e) 
 
     { 
 
     } 
 
    } 
 
}

Другой JavaClass

public class IncomingOtp extends BroadcastReceiver 
 
{ 
 
    @Override 
 
    public void onReceive(Context context, Intent intent) 
 
    { 
 

 
     final Bundle bundle = intent.getExtras(); 
 
     try { 
 
      if (bundle != null) 
 
      { 
 
       final Object[] pdusObj = (Object[]) bundle.get("pdus"); 
 
       for (int i = 0; i < pdusObj .length; i++) 
 
       { 
 
        SmsMessage currentMessage = SmsMessage.createFromPdu((byte[])                         pdusObj[i]); 
 
        String phoneNumber = currentMessage.getDisplayOriginatingAddress(); 
 
        String senderNum = phoneNumber ; 
 
        String message = currentMessage .getDisplayMessageBody(); 
 
        String otp = message.replaceAll("[^0-9]", ""); 
 
        try 
 
        { 
 
         if (senderNum.contains("RIDSHR")) 
 
         { 
 
          ChangeMobileOtp Sms = new ChangeMobileOtp(); 
 
          Sms.recivedSms(otp.trim().substring(1)); 
 
          Log.d("Otp",otp.trim().substring(1)); 
 
         } 
 
        } 
 
        catch(Exception e){} 
 

 
       } 
 
      } 
 

 
     } catch (Exception e) 
 
     { 
 

 
     } 
 
    } 
 

 
}

Пожалуйста, кто поможет исправить это.

Заранее благодарен!

+0

Log.d ("otps", message); успешно печатается? – Rahul

+0

Где вы звоните recivedSms ("")? – ajantha

+0

Где вызывается метод recivedSms? –

ответ

0

Прежде создать класс функциональности для ProgressBar, аналогичный приведенному ниже:

ProgressUtil.java:

public class ProgressUtil { 


public static void showProgressDialog(ProgressDialog pDialog) { 
    pDialog.setMessage("Loading..."); 
    pDialog.setCancelable(false); 
    if (!pDialog.isShowing()) 
     pDialog.show(); 
} 

public static void hideProgressDialog(ProgressDialog pDialog) { 
    if (pDialog.isShowing()) 
     pDialog.dismiss(); 
} 

}

Теперь в вашем фрагменте создать переменную progressDialog в классе:

ProgressDialog progressDialog; 

Инициализировать в onCreateView() метод:

progressDialog=new ProgressDialog(getActivity()); 

Теперь везде, где вы хотите, чтобы показать или скрыть прогрессбар, используйте следующие команды, основанные на вашем требовании:

ProgressUtil.hideProgressDialog(progressDialog);//Hiding 
ProgressUtil.showProgressDialog(progressDialog);//showing 

Надеется, что это будет полезно.

+0

Я не хочу диалога прогресса. – appu

+0

@ appu-Просто замените переменную progressbar вместо ProgressDialog и внесите изменения на основе кодов для панели прогресса –