示例#1
0
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_settings);

    smallBang = SmallBang.attach2Window(this);

    imageViewChooseTick = (ImageView) findViewById(R.id.imageViewChooseTick);
    autoCompleteTextViewCityChooser =
        (AutoCompleteTextView) findViewById(R.id.autoCompleteTextViewSettings);

    cityList = new CityList(this);
    final CityLoader cityLoader = new CityLoader();
    cityLoader.execute();

    autoCompleteTextViewCityChooser.setAdapter(
        new ArrayAdapter<String>(
            this, R.layout.support_simple_spinner_dropdown_item, cityList.cities));
    autoCompleteTextViewCityChooser.setValidator(
        new AutoCompleteTextView.Validator() {
          @Override
          public boolean isValid(CharSequence text) {
            try {
              L.log("Charsec: " + text);
              if (cityList.cities.contains(text.toString())) {
                L.log("validation called: true");
                Intent intent = new Intent(getBaseContext(), WeatherDisplay.class);

                sharedPreferences = getSharedPreferences(Const.PREF_NAME, Context.MODE_PRIVATE);
                editor = sharedPreferences.edit();
                editor.putString(Const.CITY_NAME, text.toString());
                editor.commit();
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);
                cityList.close();
                finish();
                return true;
              }
              L.log("validation called: false");
            } catch (Exception e) {
              L.log(e.getMessage());
            }
            Toast.makeText(
                    getBaseContext(), "Please select exact one from list", Toast.LENGTH_SHORT)
                .show();
            return false;
          }

          @Override
          public CharSequence fixText(CharSequence invalidText) {
            L.log("fixtext called");
            return null;
          }
        });

    imageViewChooseTick.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            smallBang.setColors(
                new int[] {Color.parseColor("#7CC4D8"), Color.parseColor("#AFE0EE")});
            smallBang.bang(
                v,
                new SmallBangListener() {
                  @Override
                  public void onAnimationStart() {}

                  @Override
                  public void onAnimationEnd() {
                    autoCompleteTextViewCityChooser.performValidation();
                  }
                });
          }
        });
  }