एक अभ्यास ऐप में से किसी एक विचार में, प्रोग्राम चयन प्रोग्रामेटिक रूप से करने की कोशिश कर रहा हूं।यह मोशनवेन्ट सिमुलेशन क्यों काम नहीं करता है?
मैं (प्रोग्रामेटिक रूप से) "टेक्स्ट चयन मोड" दर्ज करने में सक्षम हूं, जिसे दृश्य के ऊपरी-बाएं कोने पर कर्सर कंट्रोलर (एकेए हैंडल) द्वारा दृश्य रूप से इंगित किया गया है। "पाठ क्लिपबोर्ड में कॉपी":
मैं मैन्युअल खींचें सही CursorController, तो यह फिर से (एमुलेटर में) पर क्लिक करें है, तो वह (पूरी तरह से) की उम्मीद, एक संक्षिप्त संदेश दिखा काम करता है।
लेकिन जब मैं सही कर्सर नियंत्रक को प्रोग्रामेटिक रूप से खींचने की कोशिश करता हूं, कुछ भी नहीं होता है।
जिस तरह से मैं इसे करने का प्रयास करता हूं वह मोशनवेन्ट अनुकरण करके होता है। ध्यान में रखते हुए मैं फोन:
event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0);
MainActivity.onTouch(this, event);
MainActivity मैं में निश्चित रूप से लागू OnTouchListener:
@Override
public boolean onTouch(View v, MotionEvent event) { // called BEFORE button's onTouchEvent()
Log.v("MainActivity::onTouch()", describeEvent(v, event));
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
if (!v.hasFocus()) {
v.requestFocus();
}
break;
}
return false;
}
अगर मैं सही ढंग से समझ, मात्र लौटने 'असत्य' द्वारा onTouch से, एंड्रॉयड एक और की तलाश में रहता है यूआई ऑब्जेक्ट मोशनएवेंट ऑब्जेक्ट का उपभोग करने के लिए, अंत में मेरे दृश्य तक पहुंच गया।
ऐसा क्यों नहीं होता?
मैं बहुत ही मौलिक कुछ कमी किया जाना चाहिए ...
इस कठिन प्रश्न का उत्तर देने के लिए पहले व्यक्ति होने के लिए कुडोस। दुर्भाग्यवश हालांकि, प्रेषण टचएवेंट() घटनाओं के लिए बहुत अधिक उत्पादन नहीं करता है। शायद @ डीजेसी निम्नलिखित प्रश्न के उत्तर में सही था: http://stackoverflow.com/questions/5240287/how-to-send-synthesized-motionevent-through-the- सिस्टम –