Example usage for android.widget TextView setFilters

List of usage examples for android.widget TextView setFilters

Introduction

In this page you can find the example usage for android.widget TextView setFilters.

Prototype

public void setFilters(InputFilter[] filters) 

Source Link

Document

Sets the list of input filters that will be used if the buffer is Editable.

Usage

From source file:Main.java

public static void addLengthFilter(TextView tv, int length) {
    tv.setFilters(createLengthFilter(tv.getFilters(), length));
}

From source file:org.noise_planet.noisecapture.CommentActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_comment);

    View mainView = findViewById(R.id.mainLayout);
    if (mainView != null) {
        mainView.setOnTouchListener(new MainOnTouchListener(this));
    }// w  w w . j a  v  a  2  s . c o  m

    // Read record activity parameter
    // Use last record of no parameter provided
    this.measurementManager = new MeasurementManager(this);
    Intent intent = getIntent();
    // Read the last stored record
    List<Storage.Record> recordList = measurementManager.getRecords();
    if (intent != null && intent.hasExtra(COMMENT_RECORD_ID)) {
        record = measurementManager.getRecord(intent.getIntExtra(COMMENT_RECORD_ID, -1));
    } else {
        if (!recordList.isEmpty()) {
            record = recordList.get(0);
        } else {
            // Message for starting a record
            Toast.makeText(getApplicationContext(), getString(R.string.no_results), Toast.LENGTH_LONG).show();
            return;
        }
    }
    if (record != null) {
        View addPhoto = findViewById(R.id.btn_add_photo);
        addPhoto.setOnClickListener(new OnAddPhotoClickListener(this));
        View resultsBtn = findViewById(R.id.resultsBtn);
        resultsBtn.setOnClickListener(new OnGoToResultPage(this));
        View deleteBts = findViewById(R.id.deleteBtn);
        deleteBts.setOnClickListener(new OnDeleteMeasurement(this));
        TextView noisePartyTag = (TextView) findViewById(R.id.edit_noiseparty_tag);
        noisePartyTag.setEnabled(record.getUploadId().isEmpty());
        noisePartyTag.setFilters(new InputFilter[] { new InputFilter.AllCaps(), new InputFilter() {
            @Override
            public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart,
                    int dend) {
                // [^A-Za-z0-9_]
                StringBuilder stringBuilder = new StringBuilder();
                for (int i = start; i < end; i++) {
                    char c = source.charAt(i);
                    if (Character.isLetterOrDigit(c) || c == '_') {
                        stringBuilder.append(c);
                    }
                }

                // keep original if unchanged or return swapped chars
                boolean modified = (stringBuilder.length() == end - start);
                return modified ? null : stringBuilder.toString();
            }
        } });
        if (record.getNoisePartyTag() == null) {
            // Read last stored NoiseParty id
            for (Storage.Record recordItem : recordList) {
                if (recordItem.getId() != record.getId()) {
                    if (recordItem.getNoisePartyTag() != null) {
                        noisePartyTag.setText(recordItem.getNoisePartyTag());
                    }
                    break;
                }
            }
        } else {
            noisePartyTag.setText(record.getNoisePartyTag());
        }
    }
    initDrawer(record != null ? record.getId() : null);
    SeekBar seekBar = (SeekBar) findViewById(R.id.pleasantness_slider);

    // Load stored user comment
    // Pleasantness and tags are read only if the record has been uploaded
    Map<String, Storage.TagInfo> tagToIndex = new HashMap<>(Storage.TAGS_INFO.length);
    for (Storage.TagInfo sysTag : Storage.TAGS_INFO) {
        tagToIndex.put(sysTag.name, sysTag);
    }

    View thumbnail = findViewById(R.id.image_thumbnail);
    thumbnail.setOnClickListener(new OnImageClickListener(this));
    if (record != null) {
        // Load selected tags
        for (String sysTag : measurementManager.getTags(record.getId())) {
            Storage.TagInfo tagInfo = tagToIndex.get(sysTag);
            if (tagInfo != null) {
                checkedTags.add(tagInfo.id);
            }
        }
        // Load description
        if (record.getDescription() != null) {
            TextView description = (TextView) findViewById(R.id.edit_description);
            description.setText(record.getDescription());
        }
        Integer pleasantness = record.getPleasantness();
        if (pleasantness != null) {
            seekBar.setProgress((int) (Math.round((pleasantness / 100.0) * seekBar.getMax())));
            seekBar.setThumb(
                    seekBar.getResources().getDrawable(R.drawable.seekguess_scrubber_control_normal_holo));
            userInputSeekBar.set(true);
        } else {
            seekBar.setThumb(
                    seekBar.getResources().getDrawable(R.drawable.seekguess_scrubber_control_disabled_holo));
        }
        photo_uri = record.getPhotoUri();
        // User can only update not uploaded data
        seekBar.setEnabled(record.getUploadId().isEmpty());
    } else {
        // Message for starting a record
        Toast.makeText(getApplicationContext(), getString(R.string.no_results), Toast.LENGTH_LONG).show();
    }
    thumbnailImageLayoutDoneObserver = new OnThumbnailImageLayoutDoneObserver(this);
    thumbnail.getViewTreeObserver().addOnGlobalLayoutListener(thumbnailImageLayoutDoneObserver);

    seekBar.setOnSeekBarChangeListener(new OnSeekBarUserInput(userInputSeekBar));
    // Fill tags grid
    Resources r = getResources();
    String[] tags = r.getStringArray(R.array.tags);
    // Append tags items
    for (Storage.TagInfo tagInfo : Storage.TAGS_INFO) {
        ViewGroup tagContainer = (ViewGroup) findViewById(tagInfo.location);
        if (tagContainer != null && tagInfo.id < tags.length) {
            addTag(tags[tagInfo.id], tagInfo.id, tagContainer,
                    tagInfo.color != -1 ? r.getColor(tagInfo.color) : -1);
        }
    }
}