आप शायद इस समस्या का उत्तर पहले ही पा चुके हैं, लेकिन मैं इस पर विचार कर रहा हूं कि इसे कैसे हल किया जाए और अभी भी वास्तव में वास्तव में मुझे जो मिल रहा था वह नहीं मिल रहा है इसलिए मुझे लगा कि मैं इसे यहां पोस्ट करूंगा।
मैंने जो किया वह निम्नलिखित था (यह बहुत सामान्यीकृत है, उद्देश्य यह है कि आपको यह विचार करना है कि कैसे आगे बढ़ना है, सभी कोड को कॉपी करना और पेस्ट करना ओ: डी) काम नहीं करेगा:
पहले EditText और किसी भी अन्य विचार को आप अपने कार्यक्रम में एक दृश्य से लपेट कर चाहते हैं। मेरे मामले में मैंने सब कुछ लपेटने के लिए एक रैखिकलेयूट का उपयोग किया।
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLinearLayout">
<EditText
android:id="@+id/editText"/>
<ImageView
android:id="@+id/imageView"/>
<TextView
android:id="@+id/textView"/>
</LinearLayout>
फिर अपने कोड में आपको अपने मुख्य रैखिक के लिए एक टच श्रोता सेट करना होगा।
final EditText searchEditText = (EditText) findViewById(R.id.editText);
mainLinearLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(searchEditText.isFocused()){
if(event.getY() >= 72){
//Will only enter this if the EditText already has focus
//And if a touch event happens outside of the EditText
//Which in my case is at the top of my layout
//and 72 pixels long
searchEditText.clearFocus();
InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
Toast.makeText(getBaseContext(), "Clicked", Toast.LENGTH_SHORT).show();
return false;
}
});
मुझे उम्मीद है कि इससे कुछ लोगों को मदद मिलेगी। या कम से कम उन्हें अपनी समस्या को हल करने में मदद करता है।