2014-09-11 6 views
6

में edittext पर क्लिक करते समय कस्टम कीबोर्ड कैसे प्रदर्शित करें मेरे पास मेरे एप्लिकेशन में एक कस्टम कीबोर्ड है। सवाल यह है कि edittext पर क्लिक करते समय इस कीबोर्ड को कैसे चलाया जाए। मैं setonfocuschangre श्रोता का उपयोग कर रहा हूं, अब एडॉन्स्टक्स्ट फोकस बदलते समय कस्टोन कीबायड दिखाई देता है। लेकिन जब भी मैं संपादन पर क्लिक करता हूं तो मैं यह कीबोर्ड दिखाना चाहता हूं..एक जानकारी जो मैं भूल जाती हूं यहां संपादन करने के लिए विभाजन के भीतर है।एंड्रॉइड

उत्तर

7

मैं कीबोर्ड टैग का उपयोग कर अपने आवेदन में एक कस्टम कीबोर्ड बनाया। मैं इस कीबोर्ड को अपनी स्क्रीन पर रिलेटिवलाउट में जोड़ रहा हूं।

private void createCustomKeyboard() { 
    Keyboard customKeyboard = new Keyboard(getActivity(), R.layout.keyboard); 
    CustomKeyboard mCustomKeyboard = new CustomKeyboard(getActivity(), this); 
    mCustomKeyboard.setKeyboard(customKeyboard); 
    RelativeLayout relLayKeyboard.addView(mCustomKeyboard); 
} 

आप तो आप नीचे दिए गए कोड का उपयोग करने के लिए एक या एक से अधिक EditText पर इस CustomKeyboard उपयोग करना चाहते हैं:

EditText edtxtName = (EditText) v.findViewById(R.id.edtName); 
RelativeLayout relLayKeyboard = (RelativeLayout)findViewById(R.id.relLay_keyboard); 
edtxtName.setOnTouchListener(exitSoftKeyBoard); 

private final OnTouchListener exitSoftKeyBoard = new OnTouchListener() { 

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    InputMethodManager imm = (InputMethodManager) getActivity().getApplicationContext().getSystemService(
      android.content.Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
    if(v.equals(edtxtName)){ 
     edtxtName.requestFocus(); 
     relLayKeyboard.setVisibility(View.VISIBLE); 
    } 
    return true; 
    } 
}; 
0

उपयोग onClickListener तरह निम्नलिखित:

edit_text.setOnClickListener(new OnClickListener(){ 

    @Override 
    public void onClick(View v) { 
     custom_keyboard.open(); 
    } 
}); 

या आप यह कर सकते हैं: अपने स्वयं के कीबोर्ड को दिखाने के लिए डिफ़ॉल्ट कुंजीपटल निष्क्रिय करने के लिए

edit_text.setOnFocusChangeListener(new OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      if(hasFocus) 
       custom_keyboard.open(); 
      else 
       custom_keyboard.close(); 
     } 
    }); 
+0

मैं अपने popupleyboard दिखाने के लिए onclicklistener इस्तेमाल किया है और यह भी खाल कुंजीपटल के भीतर श्रोता। आपकी मदद के लिए धन्यवाद .... – user2512822

1

उपयोग getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); और फिर सेट एक क्लिक श्रोता

+0

आपकी मदद के लिए धन्यवाद .... – user2512822

3

आप इस तरह की कोशिश कर सकते हैं

edittext.setOnClickListener(new OnClickListener() { 
        // NOTE By setting the on click listener, we can show the custom keyboard again, 
        // by tapping on an edit box that already had focus (but that had the keyboard hidden). 
        @Override public void onClick(View v) { 
         showCustomKeyboard(v); 
        } 
      }); 


      // Disable standard keyboard hard way 
      // NOTE There is also an easy way: 'edittext.setInputType(InputType.TYPE_NULL)' 
     // (but you will not have a cursor, and no 'edittext.setCursorVisible(true)' doesn't work) 
       edittext.setOnTouchListener(new OnTouchListener() { 
        @Override public boolean onTouch(View v, MotionEvent event) { 
         EditText edittext = (EditText) v; 
         int inType = edittext.getInputType();  // Backup the input type 
         edittext.setInputType(InputType.TYPE_NULL); // Disable standard keyboard 
         edittext.onTouchEvent(event);    // Call native handler 
         edittext.setInputType(inType);    // Restore input type 
         return true; // Consume touch event 
        } 
       }); 


     // Disable spell check (hex strings look like words to Android) 
     edittext.setInputType(edittext.getInputType() | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

अधिक जानकारी के लिए जाँच here

+0

मैं यह सुनिश्चित करने के लिए कोशिश करूंगा कि एक जानकारी जिसे मैं यहां रखना भूल जाता हूं, विभाजन खंड के भीतर है .. – user2512822