की तरह कुछ बदलने की अनुमति देता से imeOptions = "actionSearch" आप कस्टम संपादन टेक्स्ट बनाने की आवश्यकता है, इसमें संपादन टेक्स्ट और @ ओवरराइड को विधि में विस्तारित करें।
यहां उदाहरण कोड है।
private ArrayList<Integer> keysToIgnore = new ArrayList<Integer>();
public EditTextCus(Context context) {
super(context);
}
public EditTextCus(Context context, AttributeSet attrs){
super(context, attrs);
}
public EditTextCus(Context context, AttributeSet attrs, int defStyle){
super (context, attrs, defStyle);
}
private Boolean keyInIgnoreList(int keyCode) {
for (Integer i:keysToIgnore){
int key = i.intValue();
if (key == keyCode)
return true;
}
return false;
}
public void addKeyToIgnoreList(int keyCode) {
if (!keyInIgnoreList(keyCode)){
keysToIgnore.add(keyCode);
}
}
public void removeKeyFromIgnoreList(int keyCode) {
if (keyInIgnoreList(keyCode)){
Integer key=new Integer(keyCode);
keysToIgnore.remove(key);
}
}
@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {
//Log.d("ws", "dispatchKeyEventPreIme(" + event + ")");
// swallow the any key in the ignore list
if (keyInIgnoreList(event.getKeyCode())) {
KeyEvent.DispatcherState state = getKeyDispatcherState();
if (state != null) {
if (event.getAction() == KeyEvent.ACTION_DOWN
/*&& event.getRepeatCount() == 0*/) {
state.startTracking(event, this);
return true;
} else if (event.getAction() == KeyEvent.ACTION_UP
&& !event.isCanceled() && state.isTracking(event)) {
return true;
}
}
}
}
return super.dispatchKeyEventPreIme(event);
}
आप भी इस कुंजी खोज करने के लिए कर सकते हैं:
mCustomEditText.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId==EditorInfo.IME_ACTION_SEARCH && event.getAction()==KeyEvent.KEYCODE_SEARCH){
System.out.println("Search pressed.........");
}
return false;
}
});
यह बुरा है। मुझे लगता है कि एक खाली स्ट्रिंग के लिए जांच करना होगा। मैं यह जवाब चुनूंगा क्योंकि यह मेरे प्रश्न का असली जवाब है, न केवल विकल्प। – Pieter888