2011-10-06 17 views
5

मेरे पास उत्पाद की सूची है। जब उपयोगकर्ता पंक्ति पर क्लिक करता है, तो Toast संदेश उत्पाद का नाम प्रदर्शित किया जाएगा।एंड्रॉइड टोस्ट संदेश प्रदर्शित

मैं प्रत्येक उत्पाद पंक्ति line.I पर Toast प्रदर्शित करने के लिए जगह है जहाँ सूची पर उपयोगकर्ता क्लिक 'पंक्ति

मेरी तस्वीर देखें में टोस्ट दिखाना चाहते हैं चाहते हैं;

enter image description here सूची की वर्तमान में प्रदर्शित केंद्र:

मैं इस तरह किया:

tablerow.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View view) { 

     Toast prName = Toast.makeText(RetailerOrderActivity.this, 
      " Name : " + productList.get(Integer.parseInt(view.getTag().toString())).getDescription(), 
      Toast.LENGTH_SHORT); 
     prName.setGravity(Gravity.AXIS_SPECIFIED, 0, 0); 
     prName.show(); 
    } 
}); 

उत्तर

6

इस प्रयास करें,

int[] values= new int[2]; 
view.getLocationOnScreen(values); 
int x = values[0]; 
int y = values[1] ; 

toast.setGravity(Gravity.TOP|Gravity.LEFT, x, y); 
+0

धन्यवाद ठीक काम – Piraba

+0

आपके काम की सराहना करते हैं और गुरुत्वाकर्षण – MKJParekh

+1

आपके काम के लिए हे +1 –

1

2 और setGravity() 3 पैरामीटर एक्स और निरंतर 1 परम में निर्दिष्ट से y ऑफसेट हैं। आपको पंक्ति दृश्य ऑब्जेक्ट की x & y स्थिति प्राप्त करने की आवश्यकता होगी, जिसे आप उपरोक्त टोस्ट को रखना चाहते हैं। या आप टच इवेंट के x & वाई प्राप्त कर सकते हैं।

व्यक्तिगत तौर पर मैं setGravity(Gravity.TOP|Gravity.LEFT,0,0)

+0

मैं could't 'Gety()' दृश्य का उपयोग कर मूल्यों ग्रेविटी – MKJParekh

1

के साथ शुरू होता है मैं आपको एक onClick या onItemClick -listener कहीं लगता है। यदि ऐसा है, तो View -परमीटर इसे पास कर दिया गया है। उत्तीर्ण View वह दृश्य है जिसे क्लिक किया गया था (आपकी सूची का प्रवेश)। getY() -method का उपयोग करके आप इसकी वाई-स्थिति प्राप्त कर सकते हैं।

आपको हमेशा टोस्ट को क्षैतिज रूप से केंद्रित करना चाहिए और Toast को इसकी चौड़ाई तय करने दें।

तो अपने कोड कुछ इस तरह लग सकता है (एक onItemClick -listener उपयोग करते हुए):

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    // Get the Y-position: 
    int y = (int) view.getY(); 
    // Create the Toast: 
    Toast toast = Toast.makeText(RetailerOrderActivity.this, 
     " Name : " + productList.get(Integer.parseInt(view.getTag().toString())).getDescription(), 
     Toast.LENGTH_SHORT 
    ); 
    // Set the position: 
    toast.setGravity(Gravity.CENTER_HORIZONTAL, 0, y); 
    // Show the Toast: 
    toast.show(); 
} 

मैं इसे परीक्षण नहीं किया है, लेकिन यह काम करना चाहिए।

+0

के लिए अपने काम और चाल की सराहना करते हैं। (View.getY()) .मैं TableLayout अंदर कर रहा हूं। \t 'tablerow.setOnClickListener (नई View.OnClickListener() { \t \t \t \t सार्वजनिक शून्य onClick (देखें) { \t \t \t \t \t \t \t \t टोस्ट prName = Toast.makeText (RetailerOrderActivity.this," का नाम: "+ productList.get (Integer.parseInt (view.getTag() toString())।) getDescription(), Toast.LENGTH_SHORT);। \t \t \t \t prName.setGravity (Gravity.AXIS_PULL_BEFORE, 0, 0); \t \t \t \t prName.show(); 'getY()' मूल्य कैसे लेना है? – Piraba

+0

क्षमा करें, मैं आपके प्रश्न को समझ नहीं पा रहा हूं। मैं 'getY()' int से लौटा हुआ फ्लोट डालना भूल गया। देखें कि कोड अब काम करता है या नहीं। –

+0

मैं टेबललायआउट में यह हिस्सा कर रहा हूं। जब प्रत्येक पंक्ति का चयन किया जाता है, तो इसे करने की आवश्यकता है। तालिका तालिका 'setOnClickListener' का उपयोग करके y मान प्राप्त करने के लिए view.getY() – Piraba

संबंधित मुद्दे