নরম কীবোর্ডের পরে অন্য EditText এ সরান পরবর্তীটি Android এ ক্লিক করা হয়




android-edittext (9)

যখন আমি 'পরবর্তী' টিপুন, ব্যবহারকারী সম্পাদনাটিক্সের ফোকাসটি পাসওয়ার্ডে সরানো আবশ্যক। তারপর, পাসওয়ার্ড থেকে, এটা ডান দিকে এবং তাই সরানো আবশ্যক। আপনি কিভাবে এটি কোড করতে সাহায্য করতে পারেন?

<LinearLayout
    android:id="@+id/LinearLayout01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="User Name*" />

    <EditText
        android:id="@+id/txt_User"
        android:layout_width="290dp"
        android:layout_height="33dp"
        android:singleLine="true" />

</LinearLayout>


<LinearLayout
    android:id="@+id/LinearLayout02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password*" />

    <EditText
        android:id="@+id/txt_Password"
        android:layout_width="290dp"
        android:layout_height="33dp"
        android:singleLine="true"
        android:password="true" />

    <TextView
        android:id="@+id/confirm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password*" />

    <EditText
        android:id="@+id/txt_Confirm"
        android:layout_width="290dp"
        android:layout_height="33dp"
        android:singleLine="true"
        android:password="true" />

</LinearLayout>

ফোকাস হ্যান্ডলিং

ফোকাস আন্দোলন একটি আলগোরিদিম উপর ভিত্তি করে যা একটি প্রদত্ত দিক থেকে নিকটতম প্রতিবেশী খুঁজে। বিরল ক্ষেত্রে, ডিফল্ট অ্যালগরিদম বিকাশকারীর উদ্দেশ্যে আচরণের সাথে মেলে না।

নিম্নোক্ত এক্সএমএল বৈশিষ্ট্যগুলি ব্যবহার করে নির্দেশক নেভিগেশনের ডিফল্ট আচরণ পরিবর্তন করুন:

android:nextFocusDown="@+id/.."  
android:nextFocusLeft="@+id/.."    
android:nextFocusRight="@+id/.."    
android:nextFocusUp="@+id/.."  

নির্দেশমূলক ন্যাভিগেশন ছাড়াও আপনি ট্যাব নেভিগেশান ব্যবহার করতে পারেন। এই জন্য আপনি ব্যবহার করতে হবে

android:nextFocusForward="@+id/.."

ফোকাস নিতে একটি বিশেষ ভিউ পেতে, কল

view.requestFocus()

নির্দিষ্ট পরিবর্তন ফোকাস ইভেন্ট শোনার জন্য একটি View.OnFocusChangeListener ব্যবহার করুন

কীবোর্ড বোতাম

আপনি android:imeOptions ব্যবহার করতে পারেন android:imeOptions আপনার কীবোর্ডে অতিরিক্ত বাটন পরিচালনা করার জন্য।

আপনার অ্যাপ্লিকেশনটির সাথে ইন্টিগ্রেশন উন্নত করার জন্য আপনি কোনও এডিইর সাথে যুক্ত একটি আইএমই এ সক্ষম করতে পারেন এমন অতিরিক্ত বৈশিষ্ট্য। এখানে দাঁড়িপাল্লা imeOptions দ্বারা সংজ্ঞায়িত যারা অনুরূপ।

ImeOptions এর ধ্রুবক বিভিন্ন কর্ম এবং পতাকা অন্তর্ভুক্ত রয়েছে, তাদের মান জন্য উপরের লিঙ্ক দেখুন।

মান উদাহরণ

ActionNext :

অ্যাকশন কী একটি "পরবর্তী" ক্রিয়াকলাপ সম্পাদন করে, ব্যবহারকারীকে পরবর্তী ক্ষেত্রটিতে পাঠায় যা পাঠ্য গ্রহণ করবে।

ActionDone :

অ্যাকশন কী একটি "সম্পন্ন" ক্রিয়াকলাপ সঞ্চালন করে, সাধারণত অর্থ ইনপুট করার জন্য আর কিছুই নয় এবং আইএমই বন্ধ করা হবে।

কোড উদাহরণ:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="32dp"
        android:layout_marginTop="16dp"
        android:imeOptions="actionNext"
        android:maxLines="1"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="24dp"
        android:imeOptions="actionDone"
        android:maxLines="1"
        android:ems="10" />

</RelativeLayout>

যদি আপনি imeoptions ইভেন্টগুলি শুনতে চান তবে একটি TextView.OnEditorActionListener ব্যবহার করুন।

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEARCH) {
            performSearch();
            return true;
        }
        return false;
    }
});

আপনার onEditorAction হ্যান্ডলারের মধ্যে মনে রাখবেন যে আপনাকে এমন একটি বুলিয়ান ফেরত দিতে হবে যা নির্দেশ করে যে আপনি কোনও কাজ পরিচালনা করছেন (সত্য) অথবা যদি আপনি কিছু যুক্তি প্রয়োগ করেন এবং স্বাভাবিক আচরণ (মিথ্যা) চান তবে নিম্নোক্ত উদাহরণে:

EditText te = ...
te.setOnEditorActionListener(new OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event){
        if (actionId == EditorInfo.IME_ACTION_NEXT) {
            // Some logic here.
            return true; // Focus will do whatever you put in the logic.
        }
        return false;  // Focus will change according to the actionId
    }
});

ফোকাস না সরানো থেকে আমি আমার যুক্তি সঞ্চালনের পরে সত্য ফিরে যখন আমি এই পাওয়া।


ইনপুট টাইপ সম্পাদনা করুন এবং প্রবেশ করুন এটিকে পরবর্তী সংস্করণে যেতে হবে

android:inputType="text"
android:inputType="textEmailAddress"
android:inputType="textPassword" 

এবং আরো অনেক.

inputType = textMultiLine প্রবেশের পরবর্তী সংস্করণে যায় না


কিছু ক্ষেত্রে আপনাকে নিজে পরবর্তী ক্ষেত্রটিতে ফোকাসটি সরাতে হবে:

focusSearch(FOCUS_DOWN).requestFocus();

উদাহরণস্বরূপ, আপনার কাছে এমন একটি টেক্সট ফিল্ড থাকতে পারে যা ক্লিক করার সময় একটি তারিখ চয়নকারী খুলবে এবং ব্যবহারকারীর চয়ন তারিখ এবং পিকার বন্ধ হওয়ার পরে আপনি ফোকাস স্বয়ংক্রিয়ভাবে পরবর্তী ইনপুট ক্ষেত্রে স্থানান্তর করতে চান। XML এ এটি পরিচালনা করার কোন উপায় নেই, এটি প্রোগ্রাম্যাটিকভাবে সম্পন্ন করতে হবে।


শুধু নিম্নোক্ত কোডটি ব্যবহার করুন এটি সূক্ষ্ম কাজ করবে এবং প্রতিটি সম্পাদকের জন্য ইনপুট টাইপটি ব্যবহার করুন এবং পরবর্তী বোতামটি কীবোর্ডে উপস্থিত হবে।

android:inputType="text" or android:inputType="number" etc

আপনার সম্পাদনা যোগ করুন

android:imeOptions="actionNext"
android:singleLine="true"

ম্যানিফেস্ট কার্যকলাপ যোগ সম্পত্তি

    android:windowSoftInputMode="adjustResize|stateHidden"

লেআউট ফাইলের মধ্যে স্ক্রল ভিউটি রুট বা প্যারেন্ট লেআউট হিসাবে সেট করা হয় ui

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.ukuya.marketplace.activity.SignInActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

       <!--your items-->

    </ScrollView>

</LinearLayout>

আপনি যোগ না প্রতিটি সময় চাই না হলে, শৈলী তৈরি করুন: মান / style.xml শৈলী যোগ করুন

ডিফল্ট / শৈলী:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="editTextStyle">@style/AppTheme.CustomEditText</item>
    </style>

<style name="AppTheme.CustomEditText"     parent="android:style/Widget.EditText">
        //...
        <item name="android:imeOptions">actionNext</item>
        <item name="android:singleLine">true</item>
    </style>

android:inputType="textNoSuggestions"
android:imeOptions="actionNext"
android:singleLine="true"
android:nextFocusForward="@+id/.."

অতিরিক্ত ক্ষেত্র যোগ করা হচ্ছে

অ্যান্ড্রয়েড ইনপুট = "textNoSuggestions"

আমার ক্ষেত্রে কাজ!


<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView01"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="vertical" >

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="666dp"
android:background="#1500FFe5"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<TextView
    android:id="@+id/TextView02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/editGrWt"
    android:layout_marginTop="14dp"
    android:layout_toLeftOf="@+id/textView3"
    android:ems="6"
    android:text="    Diamond :"
    android:textColor="@color/background_material_dark"
    android:textSize="15sp" />
  <EditText
    android:id="@+id/editDWt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/TextView02"
    android:layout_alignLeft="@+id/editGrWt"
    android:background="@color/bright_foreground_inverse_material_light"
    android:ems="4"
    android:hint="Weight"
    android:inputType="numberDecimal"
    android:nextFocusLeft="@+id/editDRate"
    android:selectAllOnFocus="true"
    android:imeOptions="actionNext"

    />
 <requestFocus />


<TextView
    android:id="@+id/TextView03"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/TextView02"
    android:layout_below="@+id/TextView02"
    android:layout_marginTop="14dp"
    android:ems="6"
    android:text="    Diamond :"
    android:textColor="@color/background_material_dark"
    android:textSize="15sp" />

<EditText
    android:id="@+id/editDWt1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/TextView03"
    android:layout_alignBottom="@+id/TextView03"
    android:layout_alignLeft="@+id/editDWt"
    android:background="@color/bright_foreground_inverse_material_light"
    android:ems="4"
    android:hint="Weight"
    android:inputType="numberDecimal"
    android:text="0"
    android:selectAllOnFocus="true"
    android:imeOptions="actionNext"/>
 <requestFocus />

<TextView
    android:id="@+id/TextView04"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/editDWt1"
    android:layout_marginTop="14dp"
    android:layout_toLeftOf="@+id/textView3"
    android:ems="6"
    android:text="         Stone :"
    android:textColor="@color/background_material_dark"
    android:textSize="15sp" />

<EditText
    android:id="@+id/editStWt1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/TextView04"
    android:layout_alignBottom="@+id/TextView04"
    android:layout_alignLeft="@+id/editDWt1"
    android:background="@color/bright_foreground_inverse_material_light"
    android:ems="4"
    android:hint="Weight"
    android:inputType="numberDecimal"
    android:nextFocusForward="@+id/editStRate1"
    android:imeOptions="actionNext" />
 <requestFocus />
  <TextView
     android:id="@+id/TextView05"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignLeft="@+id/TextView04"
     android:layout_below="@+id/editStRate1"
     android:layout_marginTop="14dp"
     android:ems="6"
     android:text="         Stone :"
     android:textColor="@color/background_material_dark"
     android:textSize="15sp" />


</RelativeLayout>

</ScrollView>

Inside Edittext just arrange like this


<EditText
    android:id="@+id/editStWt1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:imeOptions="actionNext" //now its going to rightside/next field automatically
    ..........
    .......

</EditText>




android-edittext