2017-03-07 5 views
0

Github : Stepstone Material Stepper스텝 스톤 - 재료 스테퍼

아무도 이것을 사용하고 있습니까? 그냥 물어보고 싶습니다. 단계 안에 4 개 이상의 Edittext가 있고 각각에 검증 방법이 있습니다. 나는 그저 내 활동에서 오류 트래핑 방법을 어디에서 호출해야하는지 알고 싶습니까?

class VerifyAppNameTask extends AsyncTask<String, Void, String> { 
    // 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() > 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;} 

     } 

    } 
} 

다른 하나는이

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; 
    } 
} 

이며,이 스테퍼의 코드

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) { 

} 

답변

0

난 당신이 이미했습니다 생각입니다 : 내 검증 방법의

예는 여기 대답을 얻었지만 여기에 내가 한 것입니다 :

verifystep 방법에서 편집 문구의 조건을 확인하고 끝에있는 VerificationError ("")를 반환하십시오 (kotlin에 있음)

if(editText?.text?.toString().isNullOrEmpty()){ 
    editText?.setError("this field is required") 
    editText?.addTextChangedListener(object : TextWatcher { 

     override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {} 

     override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) { 
       editText?.setError("this field is required") 
       } 

     override fun afterTextChanged(s: Editable) { 
       editText?.setError(null) 
      } 
     }) 
     return VerificationError("") 
}