2013-01-22 26 views
8

सबसे पहले करने के लिए टोस्ट के गतिशील स्थिति सेट पूरा कोडएक दृश्य यह सब के

@Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
    { 
     Toast toast=Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT); 
     toast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0); 
     View view=toast.getView(); 
     switch(buttonView.getId()) 
     { 
      case R.id.chkRed: if(chkRed.isChecked()) 
      { 
           chkGreen.setChecked(false); 
           chkBlue.setChecked(false); 
           chkYellow.setChecked(false); 
           toast.setText("You Selected Red"); 
           toast.setGravity(Gravity.NO_GRAVITY,buttonView.getRight(), chkRed.getTop()); 
          //top does not align 
          //it align perfectly to right of checkbox 
           view.setBackgroundColor(Color.RED); 
      } 
          break; 
} 
} 

तो अब, समस्या यह है नहीं है, मैं चेकबॉक्स बगल में टोस्ट प्रदर्शित करना चाहते हैं, मैं setGravity() के साथ काम करने की कोशिश की, लेकिन यह सिर्फ काम नहीं करता है और लंबे समय तक हिट और कोशिश कर रहा है, लेकिन प्रगति के साथ

चेकबॉक्स के बगल में टोस्ट कैसे प्रदर्शित करें।

उत्तर

10

ठीक है, मैं अंत में पता लगा चेकबॉक्स या कोई अन्य दृश्य

1. आप को देखने के लिए स्क्रीन पर स्थान प्राप्त करने की आवश्यकता के बगल में टोस्ट पाने के लिए,

buttonView.getLocationOnScreen(location); 
अधिक संदर्भ के लिए

द्वारा, देख टोस्ट करने के लिए गुरुत्वाकर्षण getLocationOnScreen(int[])

2. सेट

का उपयोग कर 0
toast.setGravity(Gravity.TOP|Gravity.LEFT,buttonView.getRight()+5, 
location[1]-10); 

यहां महत्वपूर्ण बात यह देखने का अधिकार, जैसे, buttonView.getRight() को टोस्ट के x-coordinate सेट किया गया है और location[1], जो आप से getLocationOnScreen()

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
    { 
     Toast toast=Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT); 
     toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0); 
     View view=toast.getView(); 
     int location[]=new int[2]; 
     buttonView.getLocationOnScreen(location); 
     switch(buttonView.getId()) 
     { 
      case R.id.chkRed: if(chkRed.isChecked()) 
      { 
           chkGreen.setChecked(false); 
           chkBlue.setChecked(false); 
           chkYellow.setChecked(false); 
           toast.setText("You Selected Red"); 
           toast.setGravity(Gravity.TOP|Gravity.LEFT,buttonView.getRight()+5, location[1]-10); 
           view.setPadding(1, 1, 1, 1); 
           view.setBackgroundColor(Color.RED); 
      } 

     } 
    } 
+4

इस उत्तर http पाने से मिलता है y- निर्देशांक: // stackoverflow .com/a/21026866/630833, टोस्ट का आकार ध्यान में लेता है, जो मेरे लिए सहायक था। – jayeffkay