/ / नेविगेशन आमंत्रित करना नेविगेशन से क्लिक करें ब्लैकबेरी में 'पिता' पर क्लिक करें - ब्लैकबेरी

नेविगेशन का आह्वान करना नेविगेशन से क्लिक करें ब्लैकबेरी में 'पिता' पर क्लिक करें - ब्लैकबेरी

संपादित ...

मैं अपने में एक नया घटक तैनात करने की कोशिश कर रहा हूंब्लैकबेरी ऐप। मेरे पास एक नई कक्षा है जो क्षैतिज फ़ील्डमेनर का विस्तार करती है, जहां मैंने एक नई सूची फ़ील्ड स्थापित की। इसके अंदर, मैं नेविगेशन क्लिक विधि को ओवरराइट करता हूं और मैं एक पॉपअप खोलता हूं। इस घटक का नाम CustomComponentHorizontal है। मैं इस घटक का उपयोग अन्य घटक अनुकूलित में करता हूं, इसका नाम कस्टमकंपोनेंट वर्टिकल है। यह कोड है:

Main.java में:

...

CustomComponentVertical ccv=new CustomComponentVertical();

...

add(ccv);

कस्टमकंपोनेंट वर्टिकल में

...

CustomComponentHorizontal cch=new CustomComponentHorizontal{

...

    protected boolean navigationClick(int status, int time) {
//Should I do something here??
return super.navigationClick(status, time);
}
};

...

add(cch);

कस्टमकंपोनेंट हॉरिज़ोंटल में:

 public class CustomComponentHorizontal extends HorizontalFieldManager {
ListField choiceField=null;
PopupScreen popup=null;
public CustomComponentHorizontal (){
choiceField = new ListField(){
public boolean navigationClick(int status, int time) {
Field focus = UiApplication.getUiApplication().getActiveScreen().getLeafFieldWithFocus();
if (focus instanceof ListField) {
popup = new ChoicePopupScreen(10, 50, choices);
popup.setChoice(choices);
UiApplication.getUiApplication().pushScreen(popup);
setPopup(popup);
return super.navigationClick(status, time);
}
};
}
}
}

मेरा उद्देश्य यह है कि जब मैं अपने घटक में क्लिक करता हूं,यह नेविगेशन लॉन्च किया गया है सूची फ़ील्ड का क्लिक करें। जब मैं अपने घटक में फोकस डालता हूं और ट्रैकपैड के साथ क्लिक करता हूं, तो पॉपअप नहीं खुलता है। लेकिन, अगर मैं घटक पर स्क्रीन को स्पर्श करता हूं, और फिर मैं ट्रैकपैड के साथ क्लिक करता हूं, तो पॉपअप खुलता है। स्पर्श ईवेंट का उपयोग किए बिना मैं पॉपअप को घटक से कैसे खोल सकता हूं?

आपका बहुत बहुत धन्यवाद।

उत्तर:

उत्तर № 1 के लिए 1

मैं कॉपी आपके कोड चिपकाया। कुछ त्रुटियां थीं, और आपकी कॉलबैक गुम थी। तो मैंने इसे थोड़ा सा तय किया और परीक्षण करने के लिए एक सरल कॉलबैक बनाया, और navigationClick सक्रिय होता है। उम्मीद है कि इससे मदद मिलती है, अगर मुझे कोई अलग समस्या नहीं है तो मुझे बताएं।

public CustomComponent()
{
elements = new Vector();
elements.addElement("Element 0");
elements.addElement("Element 1");
elements.addElement("Element 2");
elements.addElement("Element 3");
elements.addElement("Element 4");
elements.addElement("Element 5");

choiceField = new ListField(elements.size())
{
public boolean navigationClick(int status, int time)
{
int index = getSelectedIndex();
Dialog.inform((String) elements.elementAt(index));

return true;
}
};

choiceField.setCallback(new ListFieldCallback()
{
public int indexOfList(ListField listField, String prefix, int start)
{
return elements.indexOf(prefix, start);
}

public int getPreferredWidth(ListField listField)
{
return Display.getWidth();
}

public Object get(ListField listField, int index)
{
return elements.elementAt(index);
}

public void drawListRow(ListField listField, Graphics graphics, int index, int y, int width)
{
String obj = (String) get(listField, index);
graphics.setColor(0x000000);
graphics.drawText(obj, 0, y, 0, width);
}
});

add(choiceField);
}