ফোকাস হয়ে গেলে এডিটেক্সট-এর ভিতরে সমস্ত পাঠ্য নির্বাচন করুন


230

আমার এটির কিছু ডামি পাঠ্য সহ একটি সম্পাদনা পাঠ্য রয়েছে। যখন ব্যবহারকারী এটিতে ক্লিক করে আমি চাইলে এটি নির্বাচন করা হোক যাতে ব্যবহারকারী টাইপ শুরু করলে ডামি পাঠ্য মুছে যায়।

আমি কীভাবে এটি অর্জন করতে পারি?

উত্তর:


517

আপনি আপনার main.xmlফাইলটিতে চেষ্টা করতে পারেন :

android:selectAllOnFocus="true"

বা জাভাতে ব্যবহার করুন

editText.setSelectAllOnFocus(true);

17
আমি কেবল শিখেছি যে এটি কার্যকর হয় না, যদি সম্পাদনা পাঠ্য এক্সএমএলগুলিতে ইউআই বিল্ডার দ্বারা একটি <requestFocus> ট্যাগ .োকানো থাকে।
machtnix

@machtnix অন্য উপাদানগুলিতে ফোকাস যুক্ত করুন: stackoverflow.com/a/1662088/1020871
ভালবাসা

160
editText.setSelectAllOnFocus(true);

আপনি যদি এটি প্রোগ্রামক্রমে করতে চান তবে এটি কাজ করে।


2
আমার জন্যও .. উপরোক্ত সমাধানটি কোনওভাবে কার্যকর হয়নি .. প্রোগ্র্যাম্যাটিকভাবে কাজ করেছে
মার্টিন ক্রিস্টম্যান

3
যাদের এখনও উপরে গৃহীত উত্তরের সাথে সমস্যা রয়েছে: পরিবর্তে এটি ব্যবহার করে দেখুন। কাজ করার বিষয়ে নিশ্চিত (এটিও পরীক্ষিত Fragments)।
মিঃহাদিআসাত্রিও

কিছু অদ্ভুত কারণে xml উপায় সঠিকভাবে কাজ করে নি এবং এটি করে। দেখতে SDK এর ভিতরে বাগের মতো।
আর-জি

এবং আপনি যদি প্রোগ্রামিয়ালি ফোকাস করছেন ( দৃশ্যটি ইতিমধ্যে দৃষ্টি নিবদ্ধ করা হয়েছে এমন ক্ষেত্রে কাঙ্ক্ষিত পদক্ষেপের editText.requestFocus()বিষয়টি editText.clearFocus()নিশ্চিত করার জন্য আগে ইস্যু করুন
Bad LOSER

33
EditText dummy = ... 

// android.view.View.OnFocusChangeListener
dummy.setOnFocusChangeListener(new OnFocusChangeListener(){
    public void onFocusChange(View v, boolean hasFocus){
        if (hasFocus) && (isDummyText())
            ((EditText)v).selectAll();
    }
});

আপনার সহায়তার জন্য ধন্যবাদ, তবে আমি থিসটোনসিল্কের সমাধানটিকে পছন্দ করি কারণ আমার কাছে 12 টি সম্পাদনা পাঠ্য রয়েছে এবং আমি আমার কোডটি যতটা সম্ভব পরিষ্কার রাখতে চাই :) যাইহোক ধন্যবাদ!
গ্যালিপ

@ দ্য কটনসিল্কের সমাধানটি ডিজাইনের সময় উইজেটগুলির জন্য সেরা এবং ক্র্যাফটোসের উত্তর ডায়ামিক এডিটেক্সটসের জন্য সেরা।
বিষ্ণু পৌদেল

2
@ গালিপ OnFocusChangeListener listener = new OnFocusChangeListener... ইত্যাদি ... তারপর editText1.setOnFocusChangeListener(listener) editText2.setOnFocusChangeListener(listener)এবং আরও ...
স্পার্ক

25

আমি জানি আপনি একটি সমাধান খুঁজে পেয়েছেন, তবে আপনি যা চাইছেন তা করার সঠিক উপায় হ'ল কেবল android:hintআপনার সম্পাদনা পাঠের বৈশিষ্ট্যটি ব্যবহার করা । এই বাক্সটি বাক্সটি খালি এবং দৃষ্টি নিবদ্ধ না হলে প্রদর্শিত হবে তবে সম্পাদনা বাক্সটি নির্বাচন করার পরে অদৃশ্য হয়ে যাবে।


4
আমার অ্যাপ্লিকেশনটিতে সেই ক্ষেত্রগুলি ব্যক্তিগত বিবরণ দ্বারা পূরণ করা যায় যা সংরক্ষণ করা যায়। আমি যখন এই বিবরণগুলি লোড করব তখন এটি 'ডমি' পাঠ্যটি প্রতিস্থাপন করবে। আমার কারেন পদ্ধতিতে আমি ব্যবহারকারীর বিশদ প্রবেশের পরে পাঠ্যও নির্বাচন করতে পারি। যদিও আপনার উদ্বেগের জন্য ধন্যবাদ!
গ্যালিপ

12

প্রোগ্রামে ফোকাস এবং নির্বাচনকে কল করে এটি পরিচালনা করে

{
editabletext.requestFocus();
editabletext.selectAll();
}

11

কেন আপনি অ্যান্ড্রয়েড চেষ্টা করবেন না : ব্যবহারকারীকে ইঙ্গিতটি সরবরাহ করতে ইঙ্গিত = "ইঙ্গিত" .. !!

"সম্পাদনা" স্বয়ংক্রিয়ভাবে অদৃশ্য হয়ে যাবে যখন ব্যবহারকারী সম্পাদনা পাঠ্যবক্সে ক্লিক করবে। এটি সঠিক এবং সর্বোত্তম সমাধান।


4
ভাল উত্তর. তবে এমন পরিস্থিতি থাকতে পারে যা আপনি সম্পাদনা পাঠকে মানসমূহের সেটিংস ইত্যাদি থেকে পঠন করে এবং এই মানগুলি পরিবর্তন করা আপনি যতটা সম্ভব সহজ করতে চান :)
নুয়াল

5

আপনি সম্পাদনা পাঠের পরে একটি অনক্লিক পদ্ধতিও যুক্ত করতে পারেন

_editText.setSelectAllOnFocus(true);

এবং এতে:

_editText.clearFocus();
_editText.requestFocus();

আপনি এডিট ক্লিক করার সাথে সাথে পুরো পাঠ্যটি নির্বাচন করা হবে।


4

SelectAllOnFocus প্রথমবার editText ফোকাস পায় কাজ করে, কিন্তু যদি আপনি টেক্সট নির্বাচন করতে চান যে সময় এটি ব্যবহারকারীর ক্লিকের, আপনাকে কল করার প্রয়োজন editText.clearFocus()বার মধ্যে হবে।

উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনটিতে একটি এডিটেক্সট এবং একটি বোতাম থাকে, সম্পাদনাটেক্সট পরিবর্তন করার পরে বোতামটি ক্লিক করে সম্পাদনা পাঠ্য ফোকাসটি ছেড়ে যায়। তারপরে ব্যবহারকারীকে নতুন মান প্রবেশ করার আগে এডিটেক্সট-এ যা আছে তা মুছতে কার্সার হ্যান্ডেল এবং ব্যাকস্পেস কী ব্যবহার করতে হবে। সুতরাং editText.clearFocus()বোতামের onClickপদ্ধতিতে কল করুন ।


2

আমি উপরের উত্তর চেষ্টা করেছিলাম এবং আমি বিবৃতিগুলি পরিবর্তন না করা পর্যন্ত কাজ করি না। এটিই আমার পক্ষে কাজ করেছে:

    myEditText.setSelectAllOnFocus(true);
    myEditText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onClickMyEditText();
        }
    });

   private void onClickMyEditText() {
       if(myEditText.isFocused()){
        myEditText.clearFocus();
        myEditText.requestFocus();
       }else{
           myEditText.requestFocus();
           myEditText.clearFocus();
       }
   }

আমাকে জিজ্ঞাসা করতে হয়েছিল যে ফোকাসটি সম্পাদনা পাঠ্যের দিকে রয়েছে, এবং যদি প্রথমে ফোকাসের জন্য অনুরোধ না করে এবং তারপর এটি সাফ করুন। অন্যথায় পরের বার আমি সম্পাদনা পাঠ্য ক্লিক করে ভার্চুয়াল কীবোর্ডটি উপস্থিত হবে না



0

এটি আমার পক্ষে কাজ করে:

myEditText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(myEditText.isFocused()){
                myEditText.requestFocus();
                myEditText.clearFocus();
                myEditText.setSelection(myEditText.getText().length(), 0);
            }else{
                myEditText.requestFocus();
                myEditText.clearFocus();
            }

        }
    });
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.