German Erlaubte Zeichen Kette

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Hallo,

kann man hier statt erlaubte Zeichen auch unerlaubte Zeichen angeben?
denn ich möchte gerademal 7 Zeichen sperren.

gruß
sinan
 

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
:) upsss
habe vergessen das noch mitzuteilen
B4X:
IME.SetCustomFilter(EditText1,EditText1.INPUT_TYPE_TEXT, "")
 

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Hi Klaus,

wie kann ich mir die Lib ansehen?
dies ist doch verschlossen oder nicht :)

sorry aber ich habe keine Ahnung von Java :)
 

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Du könntest aber auch mal selbst suchen, oben im search Feld unter dem Basic4Android Logo.
'IME' eingeben und im dritten Eintrag findest Du sie.

Beste Grüsse.

Hi Klaus,

meinst du das hier ?
B4X:
package anywheresoftware.b4a.objects;

import android.app.Activity;
import android.content.Context;
import android.graphics.Rect;
import android.text.method.NumberKeyListener;
import android.view.KeyEvent;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.BALayout;
import anywheresoftware.b4a.BA.ActivityObject;
import anywheresoftware.b4a.BA.Events;
import anywheresoftware.b4a.BA.ShortName;
import anywheresoftware.b4a.BA.Version;
import anywheresoftware.b4a.BALayout.LayoutParams;
import anywheresoftware.b4a.keywords.Common;

/**
 * IME includes several utilities that will you help you manage the soft keyboard.
 *A tutorial with a working example is available <link>here|http://www.b4x.com/forum/basic4android-getting-started-tutorials/14832-handle-soft-keyboard-ime-library.html</link>.
 */
@ShortName("IME")
@Events(values={"HeightChanged (NewHeight As Int, OldHeight As Int)",
        "HandleAction As Boolean"})
@Version(1.0f)
@ActivityObject
public class IME {
    private String eventName;
    /**
     * Initializes the object and sets the subs that will handle the events.
     */
    public void Initialize(String EventName) {
        this.eventName = EventName.toLowerCase(BA.cul);
    }
    /**
     * Hides the soft keyboard if it is visible.
     */
    public void HideKeyboard(BA ba) {
        InputMethodManager imm = (InputMethodManager)BA.applicationContext.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(ba.vg.getWindowToken(), 0);
    }
    /**
     * Sets the focus to the given view and opens the soft keyboard.
     *The keyboard will only show if the view has received the focus.
     */
    public void ShowKeyboard(View View) {
        View.requestFocus();
        InputMethodManager imm = (InputMethodManager)BA.applicationContext.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.showSoftInput(View, 0);
    }
    /**
     * Adds the HandleAction event to the given EditText.
     */
    public void AddHandleActionEvent(final EditText EditText, final BA ba) {
        EditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {

            @Override
            public boolean onEditorAction(TextView v, int actionId,
                    KeyEvent event) {
                Boolean b =  (Boolean)ba.raiseEvent(EditText, eventName + "_handleaction");
                if (b != null && b == true)
                    return true;
                else
                    return false;
            }
            
        });
    }
    /**
     * Sets a custom filter.
     *EditText - The target EditText.
     *DefaultInputType - Sets the keyboard mode.
     *AcceptedCharacters - The accepted characters.
     *Example: Create a filter that will accept IP addresses (numbers with multiple dots)
     *<code>
     *IME.SetCustomFilter(EditText1, EditText1.INPUT_TYPE_NUMBERS, "0123456789.")</code>
     */
    public void SetCustomFilter(EditText EditText, final int DefaultInputType, final String AcceptedCharacters) {
        EditText.setKeyListener(new NumberKeyListener() {

            @Override
            protected char[] getAcceptedChars() {
                return AcceptedCharacters.toCharArray();
            }

            @Override
            public int getInputType() {
                return DefaultInputType;
            }
            
        });
    }
    /**
     * Enables the HeightChanged event. This event is raised when the soft keyboard state changes.
     *You can use this event to resize other views to fit the new screen size.
     *Note that this event will not be raised in full screen activities (an Android limitation).
     */
    public void AddHeightChangedEvent(BA ba) {
        if (ba.vg.getParent() instanceof BALayout)
            return;
        ExtendedBALayout e = new ExtendedBALayout(ba.context, eventName, ba);
        ba.activity.setContentView(e);
        BALayout.LayoutParams lp = new BALayout.LayoutParams();
        lp.height = ba.vg.getLayoutParams().height;
        lp.width = ba.vg.getLayoutParams().width;
        ba.vg.setLayoutParams(lp);
        e.addView(ba.vg);
        ba.activity.getWindow().setSoftInputMode(ba.activity.getWindow().getAttributes().softInputMode | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    }
    
    static class ExtendedBALayout extends BALayout {
        private int lastHeight = -1;
        private final String eventName;
        private final BA ba;
        public ExtendedBALayout(Context context, String EventName, BA ba) {
            super(context);
            this.eventName = EventName.toLowerCase(BA.cul);
            this.ba = ba;
        }
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            int height = MeasureSpec.getSize(heightMeasureSpec);
            if (height != lastHeight && lastHeight != -1) {
                ba.raiseEvent(null, eventName + "_heightchanged", height, lastHeight);
            }
            lastHeight = height;
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);       
        }

    }

}

aber leider blicke ich hier nicht durch.
und das hilft mir nicht :-(

gruß
sinan
 

klaus

Expert
Licensed User
Longtime User
Und wo hast Du diesen Code her bekommen ? Hab Ich noch nie gesehen.
IME ist eine Library die genau wie alle Andere behandelt wird.
Die kannst Du hier herunterladen !!!!
Hier hast Du die Hilfedatei !!!!
Und hier das Tutorial !!!!
Ist das wirklich si schwer selbst zu finden ?
Ich hatte Dir vorgeschlagen dass Du im Searchfeld IME eingibst und hast Du das gemacht ?
Der Eintrag ganz oben gibt den Link zur Hilfedatei.
Der dritte Eintrgag gibt den Link zur Library.
Und im Post wo Du die Library runterladen kannst findest Du den Link zum Tutorial !

Beste Grüsse.
 

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Hallo Klaus,

das habe ich mir bereits angesehen aber trotzdem komme ich damit nicht weiter, denn dort wird nur die Zeichen eingesetzt, die erlaubt sind aber nicht andersrum.
 
Top