Как искать введите значение edittext из базы данных - PullRequest
0 голосов
/ 01 ноября 2018

Мне нужна проверка для номера мобильного телефона. Я ввожу поиск в редактируемом текстовом значении с помощью базы данных. Я хочу получить ошибку, уже зарегистрируйте свой номер для сообщения проверки setError или Toast, Добавьте классы Main, Model и класс AppUtil. Я, прикрепленный код, указанный ниже. Пожалуйста, скажите, что я установил валидацию.

public class CreateRyotManagerFragment extends Fragment {
EditText mRyotName, mRyotFatherName, mAddress, mIdNo, mMobile1;
Spinner mDivision;
List<RyotMasterDb> mRyotList;
List<DivitionMasterDb> mDistrickarray;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    view = inflater.inflate(R.layout.layout_new_ryot, container, false);

    mMobile1 = view.findViewById(R.id.mobile);
    mDivision = view.findViewById(R.id.divition);
    mRyotList = AppUtils.getRyotMasterList();
    mDistrickarray = AppUtils.getDistrictMasterLIst();

    SpinnerAfdapterDistric divisionAdapter = new SpinnerAfdapterDistric(getActivity().getApplicationContext(), mDistrickarray);
    mDivision.setAdapter(divisionAdapter);

}

}

@Table(name = "ryotMasterDB", database = AppDatabase.class)
RyotMasterDb extends Model implements Serializable {
@PrimaryKey
public Long id;

@Column(name = "mobile_1")
public String mobile_1;
@Column(name = "mobile_2")
public String mobile_2;
@Column(name = "zone_group_id")
public String zone_group_id;
@Column(name = "bank_id")
public String bank_id;
@Column(name = "branch_id")
public String branch_id;
@Column(name = "sb_ac_no")
public String sb_ac_no;
@Column(name = "state")
public String state;
@Column(name = "remoteID")
public String remoteID;

public RyotMasterDb() {

}

public RyotMasterDb(String remoteId, String imageData, String ryotNo, String catId, String name, String fatherName, String divId, String secID, String villID, String address, String address1, String add2, String add3, String iiSourceID, String irrType, String totalArea, String suitableArea, String pCode, String disID, String talukID, String firID, String factID, String pontentialRyot, String idProof, String idNo, String mobile1, String mobil2m,String passbook_image, String id_proof_image, String id_proof_back_side_image) {

    this.remoteID = remoteId;
    this.id = Long.getLong(remoteId);

    this.mobile_1 = mobile1;
    this.mobile_2 = mobil2m;
    this.zone_group_id = zoneGroup;
    this.bank_id = bankID;
    this.branch_id = branchID;
    this.sb_ac_no = sbAccNO;
    this.state = state;


}

public String getState() {
    return state;
}

public void setState(String state) {
    this.state = state;
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}


public String getMobile_1() {
    return mobile_1;
}

public void setMobile_1(String mobile_1) {
    this.mobile_1 = mobile_1;
}

public String getMobile_2() {
    return mobile_2;
}

public void setMobile_2(String mobile_2) {
    this.mobile_2 = mobile_2;
}

public String getZone_group_id() {
    return zone_group_id;
}

public void setZone_group_id(String zone_group_id) {
    this.zone_group_id = zone_group_id;
}

public String getBank_id() {
    return bank_id;
}

public void setBank_id(String bank_id) {
    this.bank_id = bank_id;
}

public String getBranch_id() {
    return branch_id;
}

public void setBranch_id(String branch_id) {
    this.branch_id = branch_id;
}

public String getSb_ac_no() {
    return sb_ac_no;
}

public void setSb_ac_no(String sb_ac_no) {
    this.sb_ac_no = sb_ac_no;
}

}

public class AppUtils {

static Fragment mFragment;

public static List<RyotMasterDb> getRyotMasterList() {
    return Select.from(RyotMasterDb.class).fetch();
}

}

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Я предлагаю вам использовать AutoCompleteTextView. Редактируемое текстовое представление, которое автоматически отображает предложения о завершении, пока пользователь печатает. Список предложений отображается в раскрывающемся меню, из которого пользователь может выбрать элемент для замены содержимого поля редактирования.

Раскрывающийся список можно отменить в любое время, нажав клавишу "Назад" или, если в раскрывающемся списке не выбран ни один элемент, нажав центральную клавишу ввода / dpad.

Список предложений получен из адаптера данных и появляется только после заданного числа символов, определенного порогом .

Пример кода:

public class CountriesActivity extends Activity {
   protected void onCreate(Bundle icicle) {
       super.onCreate(icicle);
       setContentView(R.layout.countries);

       ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
             android.R.layout.simple_dropdown_item_1line, COUNTRIES);
       AutoCompleteTextView textView = (AutoCompleteTextView)
             findViewById(R.id.countries_list);
       textView.setAdapter(adapter);
   }

   private static final String[] COUNTRIES = new String[] {
       "Belgium", "France", "Italy", "Germany", "Spain"
   };
}

Вы можете обратиться к этому примеру для подробного объяснения.

0 голосов
/ 01 ноября 2018

Вы можете установить keyListener для вашего EditText

editText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if(event.getAction() == KeyEvent.ACTION_DOWN && keycode == KeyEvent.KEYCODE_ENTER){
                // do your search in here    
                String mobileno=mmobile.getText().toString();
                //search it  
                boolean isInList = checkIsPhoneNumberInList(mRyotList,mobileno);
                Log.i("CheckResult","is my phone number "+mobileno+" in mRyotList: "+isInList);
                if(isInList){
                   Toast.makeText(getActivity(),"your phone number is already registered",Toast.Toast.LENGTH_LONG).show(); 
                }
            }
            return false;
        }
    });

для проверки того, находится ли телефон, который вы ввели в свой текст редактирования, в вашей базе данных этим методом

private boolean checkIsPhoneNumberInList(List<RyotMasterDb> mRyotList,String phoneNumber){
   if (mRyotList == null || phoneNumber == null) {
       return false;
   }
   boolean isIn = false;
   for (RyotMasterDb rm: mRyotList) {
       if (phoneNumber.equals(rm.getMobile_1())||phoneNumber.equals(rm.getMobile_2())){
           isIn = true;
       }
   }
   return isIn;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...