সম্পাদনা পাঠের ফোকাস হ্যান্ডলিংয়ের ইভেন্ট


145

কেউ কি আমাকে ফোকাস সম্পর্কিত কোনও অনুষ্ঠানের পরামর্শ দিতে পারে EditText? আমার অ্যাপ্লিকেশনটিতে একটি রয়েছে EditTextযা এতে একটি ইউআরএল গ্রহণ করে।

এখন আমার সমস্যাটি হ'ল, এর পরে ব্যবহারকারী ক্ষেত্রটিতে ইউআরএল প্রবেশ করবে এবং ক্লিক ইভেন্টের কোনওটি ছাড়াই আরও সরানো হবে, অর্থাত্ যখন ফোকাসটি স্থানান্তরিত হবে তখন EditTextএটি প্রবেশ করা url সনাক্ত করে সার্ভারে যাবে goes

যদি আমি জসন পার্সিং ব্যবহার করে উত্তরটি পাই তবে এটি আরও সুবিধাজনক হবে।

উত্তর:


519

ফোকাস শ্রোতার উদাহরণ এখানে।

editText.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View view, boolean hasFocus) {
        if (hasFocus) {
            Toast.makeText(getApplicationContext(), "Got the focus", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(getApplicationContext(), "Lost the focus", Toast.LENGTH_LONG).show();
        }
    }
});

ফোকাস পরিবর্তন শ্রোতার অভ্যন্তরে টুকরাগুলিতে আমি আমার ইউআই আপডেট করতে পারছি না, কোনও ধারণা?
moDev

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

1
সচেতন হোন যে আপনার সফ্টওয়্যারটি যখন সফট কীবোর্ড প্রদর্শিত হয় তখন আকার পরিবর্তন করতে সেট করে থাকে বা একটি টেক্সটওয়াটার ব্যবহার করে ইউআই-সম্পর্কিত কিছু করেন, শ্রোতাকে অনেক কিছু বলা যেতে পারে - এমনকি প্রতিটি অক্ষর টাইপ করার পরেও দু'বার! stackoverflow.com/questions/14727248/...
M_M

12
  1. শ্রেণীর শীর্ষে সম্পাদনা পাঠ্য অবজেক্টটি ঘোষণা করুন:

     EditText myEditText;
  2. অনক্রিট ফাংশন এডিট টেক্সট সন্ধান করুন এবং সম্পাদনা পাঠ্যক্রমের ফোকাস চ্যাঞ্জলিস্টনার সেট করুন:

    myEditText = findViewById(R.id.yourEditTextNameInxml); 
    
    myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View view, boolean hasFocus) {
                    if (!hasFocus) {
                         Toast.makeText(this, "Focus Lose", Toast.LENGTH_SHORT).show();
                    }else{
                        Toast.makeText(this, "Get Focus", Toast.LENGTH_SHORT).show();
                    }
    
                }
            });

এটা ঠিক কাজ করে।


11

কোটলিনে কখন এটি দেখতে পাবেন:

editText.setOnFocusChangeListener { view, hasFocus ->
        if (hasFocus) toast("focused") else toast("focuse lose")
    }

4

আমাদের মধ্যে যারা এই উপরের বৈধ সমাধানটি কাজ করে নি, তাদের জন্য এখানে আরও একটি কার্যকর কাজ রয়েছে

 searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean isFocused) {
            if(!isFocused)
            {
                Toast.makeText(MainActivity.this,"not focused",Toast.LENGTH_SHORT).show();

            }
        }
    });

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