হ্যালো আমি একটি অনুসন্ধান EditText
এবং অনুসন্ধান পেয়েছি Button
। আমি যখন সন্ধান করা পাঠ্যটি টাইপ করি তখন অনুসন্ধানের ক্রিয়াকলাপ সক্রিয় করার জন্য অনুসন্ধানের পরিবর্তে সফটকিবোর্ডে ENTER কী ব্যবহার করতে চাই Button
।
উপকারের জন্য আগাম শুভেচ্ছা.
উত্তর:
আপনি একটি সেটিং দ্বারা এটা করতে OnKeyListener
আপনার এর উপর EditText
।
এখানে আমার নিজস্ব কোড থেকে একটি নমুনা দেওয়া হয়েছে। আমার একটি EditText
নাম আছে addCourseText
, যা addCourseFromTextBox
এন্টার কী বা ডি-প্যাড ক্লিক করলে ফাংশনটি কল করবে ।
addCourseText = (EditText) findViewById(R.id.clEtAddCourse);
addCourseText.setOnKeyListener(new OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
addCourseFromTextBox();
return true;
default:
break;
}
}
return false;
}
});
android:inputType="text"
সম্পাদনা পাঠ্যের জন্য এক্সএমএল সেট করতে পারেন প্রবেশের ডিফল্ট ডিফল্ট কীবোর্ড যা ক্যারেজের রিটার্ন রয়েছে তার বিপরীতে প্রবেশ কীটি দেখায়।
<EditText
android:id="@+id/search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/search_hint"
android:inputType="text"
android:imeOptions="actionSend" />
তারপরে আপনি সম্পাদনা পাঠ্য উপাদানটির জন্য একটি পাঠ্য ভিউ.অনএডিটরঅ্যাকশনলিস্টনার নির্ধারণ করে ক্রিয়া বোতামে টিপুন শুনতে পারেন। আপনার শ্রোতার ক্ষেত্রে, IMIAAFF_SEND এর মতো এডিটরআইএনফো ক্লাসে সংজ্ঞায়িত যথাযথ IME ক্রিয়া আইডির প্রতিক্রিয়া জানান। উদাহরণ স্বরূপ:
EditText editText = (EditText) findViewById(R.id.search);
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_SEND) {
sendMessage();
handled = true;
}
return handled;
}
});
উত্স: https://developer.android.com/training/keyboard-input/style.html
আপনি নিজের এডিটেক্সট এর মতো একটি বৈশিষ্ট্য যুক্ত করতে পারেন:
android:imeOptions="actionSearch"
android:inputType="text"
পাশাপাশি সেট করতে হবে
আমরা কোটলিন ল্যাম্বদাও ব্যবহার করতে পারি
editText.setOnKeyListener { _, keyCode, keyEvent ->
if (keyEvent.action == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
Log.d("Android view component", "Enter button was pressed")
return@setOnKeyListener true
}
return@setOnKeyListener false
}
পরবর্তী সম্পাদনযোগ্য ক্ষেত্রে অগ্রণী মনোযোগ এড়াতে (যদি আপনার একটি থাকে) আপনি কী-ডাউন ইভেন্টগুলি উপেক্ষা করতে চাইতে পারেন, তবে কী-আপ ইভেন্টগুলি পরিচালনা করতে পারেন। আমি কী-কোডে প্রথমে ফিল্টার করতে পছন্দ করি, ধরে নিলাম যে এটি সামান্য আরও দক্ষ হবে। যাইহোক, মনে রাখবেন যে সত্য প্রত্যাবর্তনের অর্থ আপনি ইভেন্টটি পরিচালনা করেছেন তাই অন্য কোনও শ্রোতা তা করবে না। যাইহোক, এখানে আমার সংস্করণ।
ETFind.setOnKeyListener(new OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER
|| keyCode == KeyEvent.KEYCODE_ENTER) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
// do nothing yet
} else if (event.getAction() == KeyEvent.ACTION_UP) {
findForward();
} // is there any other option here?...
// Regardless of what we did above,
// we do not want to propagate the Enter key up
// since it was our task to handle it.
return true;
} else {
// it is not an Enter key - let others handle the event
return false;
}
}
});
আমি কীভাবে পরিচালনা করব এটি আমার অ্যাপের একটি নমুনা
//searching for the Edit Text in the view
final EditText myEditText =(EditText)view.findViewById(R.id.myEditText);
myEditText.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN)
if ((keyCode == KeyEvent.KEYCODE_DPAD_CENTER) ||
(keyCode == KeyEvent.KEYCODE_ENTER)) {
//do something
//true because you handle the event
return true;
}
return false;
}
});
এটি অর্জনের জন্য সর্বাধিক আপডেট হওয়া উপায়:
এক্সএমএলে এটি আপনার সম্পাদনা পাঠ্যে যুক্ত করুন:
android:imeOptions="actionSearch"
তারপরে আপনার ক্রিয়াকলাপ / খণ্ডে:
EditText.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
// Do what you want here
return@setOnEditorActionListener true
}
return@setOnEditorActionListener false
}