কীবোর্ড অ্যাকশন পরিচালনা করুন

কম্পোজ পদ্ধতিটি চেষ্টা করুন
অ্যান্ড্রয়েডের জন্য Jetpack Compose হলো প্রস্তাবিত UI টুলকিট। Compose-এ কীভাবে কীবোর্ড অ্যাকশন পরিচালনা করতে হয় তা জানুন।

যখন ব্যবহারকারী একটি সম্পাদনাযোগ্য টেক্সট ভিউ, যেমন একটি EditText এলিমেন্টে, ফোকাস দেন এবং তার সাথে একটি হার্ডওয়্যার কিবোর্ড সংযুক্ত থাকে, তখন সমস্ত ইনপুট সিস্টেম দ্বারা পরিচালিত হয়। তবে, আপনি যদি নিজে কিবোর্ডের ইনপুট ইন্টারসেপ্ট করতে বা সরাসরি পরিচালনা করতে চান, তাহলে KeyEvent.Callback ইন্টারফেসের onKeyDown() এবং onKeyMultiple() এর মতো কলব্যাক মেথডগুলো ইমপ্লিমেন্ট করার মাধ্যমে তা করতে পারেন।

Activity এবং View উভয় ক্লাসই KeyEvent.Callback ইন্টারফেসটি ইমপ্লিমেন্ট করে, তাই সাধারণত এই ক্লাসগুলোর এক্সটেনশনে প্রয়োজন অনুযায়ী কলব্যাক মেথডগুলো ওভাররাইড করতে হয়।

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

একক কী ইভেন্টগুলি পরিচালনা করুন

একটি নির্দিষ্ট কী চাপার ঘটনা পরিচালনা করার জন্য, প্রয়োজন অনুযায়ী onKeyDown() বা onKeyUp() ইমপ্লিমেন্ট করুন। সাধারণত, আপনি যদি নিশ্চিত করতে চান যে আপনি কেবল একটি ইভেন্টই পাবেন, তাহলে onKeyUp() ব্যবহার করা হয়। যদি ব্যবহারকারী কোনো কী চেপে ধরে রাখে, তাহলে onKeyDown() একাধিকবার কল করা হয়।

উদাহরণস্বরূপ, এই বাস্তবায়নটি একটি গেম নিয়ন্ত্রণ করার জন্য কিবোর্ডের কিছু কী-তে সাড়া দেয়:

কোটলিন

override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
    return when (keyCode) {
        KeyEvent.KEYCODE_D -> {
            moveShip(MOVE_LEFT)
            true
        }
        KeyEvent.KEYCODE_F -> {
            moveShip(MOVE_RIGHT)
            true
        }
        KeyEvent.KEYCODE_J -> {
            fireMachineGun()
            true
        }
        KeyEvent.KEYCODE_K -> {
            fireMissile()
            true
        }
        else -> super.onKeyUp(keyCode, event)
    }
}

জাভা

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    switch (keyCode) {
        case KeyEvent.KEYCODE_D:
            moveShip(MOVE_LEFT);
            return true;
        case KeyEvent.KEYCODE_F:
            moveShip(MOVE_RIGHT);
            return true;
        case KeyEvent.KEYCODE_J:
            fireMachineGun();
            return true;
        case KeyEvent.KEYCODE_K:
            fireMissile();
            return true;
        default:
            return super.onKeyUp(keyCode, event);
    }
}

হ্যান্ডেল মডিফায়ার কী

মডিফায়ার কী ইভেন্টগুলিতে সাড়া দিতে, যেমন যখন কোনো কী Shift বা Control-এর সাথে যুক্ত করা হয়, তখন আপনি কলব্যাক মেথডে পাঠানো KeyEvent টি কোয়েরি করতে পারেন। getModifiers() এবং getMetaState() -এর মতো বেশ কিছু মেথড মডিফায়ার কী সম্পর্কে তথ্য প্রদান করে। তবে, সবচেয়ে সহজ সমাধান হলো isShiftPressed() এবং isCtrlPressed() -এর মতো মেথড ব্যবহার করে আপনার কাঙ্ক্ষিত নির্দিষ্ট মডিফায়ার কী-টি চাপা হচ্ছে কি না তা পরীক্ষা করা।

উদাহরণস্বরূপ, এখানে আবার onKeyUp() এর ইমপ্লিমেন্টেশনটি দেওয়া হলো, যেখানে অন্য কোনো কী-এর সাথে Shift কী চেপে ধরা হলে তার জন্য অতিরিক্ত ব্যবস্থা রাখা হয়েছে:

কোটলিন

override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
    return when (keyCode) {
        ...
        KeyEvent.KEYCODE_J -> {
            if (event.isShiftPressed) {
                fireLaser()
            } else {
                fireMachineGun()
            }
            true
        }
        KeyEvent.KEYCODE_K -> {
            if (event.isShiftPressed) {
                fireSeekingMissle()
            } else {
                fireMissile()
            }
            true
        }
        else -> super.onKeyUp(keyCode, event)
    }
}

জাভা

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    switch (keyCode) {
        ...
        case KeyEvent.KEYCODE_J:
            if (event.isShiftPressed()) {
                fireLaser();
            } else {
                fireMachineGun();
            }
            return true;
        case KeyEvent.KEYCODE_K:
            if (event.isShiftPressed()) {
                fireSeekingMissle();
            } else {
                fireMissile();
            }
            return true;
        default:
            return super.onKeyUp(keyCode, event);
    }
}

অতিরিক্ত সম্পদ

  • কিবোর্ড শর্টকাট সহায়ক : এটি এমন একটি সিস্টেম স্ক্রিন যা ব্যবহারকারীদের আপনার অ্যাপের দেওয়া কিবোর্ড শর্টকাটগুলো অনুসন্ধান করতে সক্ষম করে।