title: Stepstone - Material Stepper
body: <p><a href="https://github.com/stepstone-tech/android-material-stepper" rel="nofollow noreferrer">Github : Stepstone Material Stepper</a></p>
  
  <p>Anybody using this?
  I just want to ask, I have more than 4 Edittexts inside a step, and each of it has verifation method. I just want to know where should I call those error trapping methods in my activity?</p>
  
  <p>Example of my verification method is here:</p>
  
  <pre><code> class VerifyAppNameTask extends AsyncTask&lt;String, Void, String&gt; {
      // use doInBackground() to make network calls, the returned value is
      // sent to onPostExecute()
      @Override
      protected String doInBackground(String... data) {
  
          if (data[0].replace(" ","").isEmpty())
          {
              f1 = true;
              return "1";
          }
          else if (data[0].length() &gt; 25)
          {
              f1 = true;
              return "2";
          }
          else if (checkAppName(data[0]))
          {
              f1 = true;
              return "3";
          }
          else
          {
              f1 = false;
              return "4";
          }
  
  
      }
      @Override
      protected void onPostExecute(String result) {
          tilAppName.setErrorEnabled(true);
          switch(result)
          {
              case "1":   {tilAppName.setError("You can't leave this empty.");break;}
              case "2":   {tilAppName.setError("Maximum of 25 characters.");break;}
              case "3":   {tilAppName.setError("No spaces allowed");break;}
              case "4":   {tilAppName.setError(null);tilAppName.setErrorEnabled(false);break;}
  
          }
  
      }
  }
  </code></pre>
  
  <p>another one is this</p>
  
  <pre><code>public boolean edtAppCategoryET(String data)
  {
  
      tilAppCategory.setErrorEnabled(true);
      if (data.replace(" ","").equals(""))
      {
          tilAppCategory.setError("You can't leave this empty.");
          return true;
      }
      else
      {
          tilAppCategory.setError("");
          tilAppCategory.setErrorEnabled(false);
          return false;
      }
  }
  </code></pre>
  
  <p>and this is the code for stepper</p>
  
  <pre><code>public class AppUploadStep1 extends Fragment implements Step {
  
  private static final String LAYOUT_RESOURCE_ID_ARG_KEY = "messageResourceId";
  
  EditText edtAppName, edtAppVersion, edtAppPlatform, edtAppCategory, edtAppDescription;
  TextInputLayout  tilAppName,  tilAppVersion,  tilAppPlatform,  tilAppCategory,  tilAppDescription;
  String sAppName, sAppVersion, sAppPlatform, sAppCategory, sAppDescription;
  boolean f1, f2, f3, f4, f5;
  
  HttpURLConnection connection;
  BufferedReader reader;
  URL url;
  InputStream stream;
  StringBuffer buffer;
  String line;
  
  ProgressBar loading;
  
  
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      final View v = inflater.inflate(R.layout.content_app_upload_step1, container, false);
      getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
  
      //initialize your UI
      edtAppPlatform = (EditText) v.findViewById(R.id.edtAppPlatform);
      edtAppVersion = (EditText) v.findViewById(R.id.edtAppVersion);
      edtAppCategory = (EditText) v.findViewById(R.id.edtAppCategory);
      edtAppDescription = (EditText) v.findViewById(R.id.edtAppDescription);
      edtAppName = (EditText) v.findViewById(R.id.edtAppName);
  
      tilAppName = (TextInputLayout) v.findViewById(R.id.tilAppName);
      tilAppVersion = (TextInputLayout) v.findViewById(R.id.tilAppVersion);
      tilAppPlatform = (TextInputLayout) v.findViewById(R.id.tilAppPlatform);
      tilAppCategory = (TextInputLayout) v.findViewById(R.id.tilAppCategory);
      tilAppDescription = (TextInputLayout) v.findViewById(R.id.tilAppDescription);
  
      edtAppPlatform.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              showCustomSpinnerDialog(v, R.array.spinner_platform, R.id.edtAppPlatform);
          }
      });
  
      edtAppCategory.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              showCustomSpinnerDialog(v, R.array.categories, R.id.edtAppCategory);
          }
      });
  
      errorTrap();
      return v;
  }
  
  public static AppUploadStep1 newInstance(@LayoutRes int layoutResId) {
      Bundle args = new Bundle();
      args.putInt(LAYOUT_RESOURCE_ID_ARG_KEY, layoutResId);
      AppUploadStep1 fragment = new AppUploadStep1();
      fragment.setArguments(args);
      return fragment;
  }
  
  
  
  @Override
  public VerificationError verifyStep() {
  
  
  //    getData();
      //if (edtAppVersionET(sAppVersion)) {
        //  return true
       //   ?new VerificationError("Password cannot be empty")
       //   :null;
  return null;
  }
  
  @Override
  public void onSelected() {
  
  }
  
  @Override
  public void onError(@NonNull VerificationError error) {
  
  }
  </code></pre>