मैं ActionBar बनाने के लिए ActionBarSherlock इस्तेमाल किया यह एक खोज बटन है कि पता चलता है एक AutoCompleteEditText
(SHOW_AS_COLLAPSIBLE_ACTION_VIEW
) जब खोज बटन क्लिक किया जाता है, EditText
दिखाया गया है, मैं चाहता हूँ EditText
फोकस प्राप्त है और इस तरह शीतल कीबोर्ड को दिखाने के लिए, के रूप में यह इस विस्तार किया है कोडएक्शनटेक्स्ट एक्शन बार में दिखाए जाने पर सॉफ्ट कीबोर्ड को कैसे फोकस और दिखाएं?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.activity_main, menu);
boolean isLight = true;
// Add Search button
int menuItemId = menu
.add("Search")
.setIcon(
isLight ? R.drawable.ic_search_inverse
: R.drawable.ic_search)
.setActionView(R.layout.collapsible_edittext)
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS
| MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW)
.getItemId();
// Add Search Topic (Sub Menu)
SubMenu subMenu1 = menu.addSubMenu("Topic");
subMenu1.add(Menu.NONE, 10, 0, "All Topics");
subMenu1.add(Menu.NONE, 11, 1, "Adult");
subMenu1.add(Menu.NONE, 12, 2, "Pediatric");
subMenu1.add(Menu.NONE, 13, 13, "Drug");
MenuItem subMenu1Item = subMenu1.getItem();
subMenu1Item.setIcon(R.drawable.abs__ic_menu_moreoverflow_holo_light);
subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
searchBar = (AutoCompleteTextView) menu.findItem(menuItemId)
.getActionView().findViewById(R.id.etSearch);
setSearchSettings(searchMenuID);
// get instance of Search Button
searchWidgetItem = menu.findItem(menuItemId);
searchBar
.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
// Perform a Search
performSearch(v.getText().toString(),
(searchMenuID < 0) ? 3 : searchMenuID);
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
// Collapse the ActionView (Search Bar)
searchWidgetItem.collapseActionView();
// Clear the TextEdit
v.setText("");
return true;
}
return false;
}
});
return true;
}
मैं अगर यह ध्यान केंद्रित है EditText पर एक OnFocusChangeListener
शीतल Keboard सेट और दिखाने की कोशिश की है, लेकिन यह काम किया फ्लॉप:
searchBar.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(v, InputMethodManager.SHOW_FORCED);
}
}
});
यह कैसे करें?
क्यों एक Runnable पोस्ट करने के लिए की जरूरत है ? –