2013-06-06 6 views
10

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

AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); 
alertDialog.setTitle("Title"); 
alertDialog.setMessage("Here is a really long message."); 
alertDialog.setButton("OK", null); 
AlertDialog alert = alertDialog.create(); 
alert.show(); 

क्या कोई मुझे विस्तार से समझा सकता है कि इसे स्क्रॉल करने योग्य कैसे बनाया जाए? किसी भी मदद या सुझाव की सराहना की जाएगी!

+0

http://developer.android.com/reference/android/app/AlertDialog.html पढ़ यदि आप एक पाठ की तुलना में एक अधिक जटिल दृश्य की जरूरत है, तो आप इसे क्या करना है एक स्क्रॉल करने योग्य TextView उदाहरण का उपयोग कर थोड़ा अलग देखेंhttp: //stackoverflow.com/questions/1748977/making-textview-scrollable-in-android – ShinTakezou

+0

उस तरह का उपयोग करें http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android- एप्लिकेशन –

+0

संभावित डुप्लिकेट [एंड्रॉइड में एक अलर्टडियलॉग में एक लंबवत स्क्रॉलबार जोड़ना?] (Https://stackoverflow.com/questions/1564867/adding-a-vertical-scrollbar-to-an-alertdialog-in-android) – Chisko

उत्तर

19

यह समाधान this post से लिया गया है।

स्क्रॉल करने के लिए एक दृश्य के लिए आदेश में, यह एक scrollview कंटेनर के अंदर नेस्टेड किया जाना चाहिए:

<ScrollView> 
    <LinearLayout android:orientation="vertical" 
      android:scrollbars="vertical" 
      android:scrollbarAlwaysDrawVerticalTrack="true"> 
     <TextView /> 
     <Button /> 
    </LinearLayout> 
</ScrollView> 

ध्यान दें कि एक scrollview कंटेनर केवल एक ही बच्चा लेआउट दृश्य हो सकता है। यह संभव नहीं है, उदाहरण के लिए, LinearLayout के बिना स्क्रॉलव्यू में टेक्स्ट व्यू और बटन डालने के लिए।

+0

मुझे लगता है स्क्रॉलव्यू के साथ आपको आम तौर पर चौड़ाई/ऊंचाई निर्धारित करने की आवश्यकता होती है; जैसा कि यहां प्रश्न में उदाहरण के रूप में http://stackoverflow.com/questions/17352987/scrollable-textview-inside-alertdialog-android – Fattie

+0

यह सबसे आसान समाधान है! धन्यवाद ! एक आकर्षण की तरह काम करता है;) – satyres

+0

मेरा जवाब यहां देखें http://stackoverflow.com/a/33098898/1881527 –

7

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

yourxmlfile.xml

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

    <TextView 
     android:id="@+id/textmsg" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="@string/hello" /> 

    </LinearLayout> 
</ScrollView> 

गतिविधि कक्षा में

LayoutInflater inflater= LayoutInflater.from(this); 
View view=inflater.inflate(R.layout.yourxmlfile, null); 

TextView textview=(TextView)view.findViewById(R.id.textmsg); 
textview.setText("Your really long message."); 
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); 
alertDialog.setTitle("Title"); 
//alertDialog.setMessage("Here is a really long message."); 
alertDialog.setView(view); 
alertDialog.setButton("OK", null); 
AlertDialog alert = alertDialog.create(); 
alert.show(); 
+0

यह एक त्रुटि 'अज्ञात चर या फ़ील्ड' textmsg 'दिखा रहा है। ' – ashu

+0

यहां अपने एक्सएमएल टेक्स्ट व्यू की अपनी आईडी का उपयोग करें, आपने पाठ के आईडी को' टेक्स्टव्यू एंड्रॉइड: आईडी = "@ + आईडी/टेक्स्टएमएसजी '' –

+1

में देखा है। मुझे इसे ठीक करना है। इस लाइन को संशोधन की आवश्यकता थी .. (टेक्स्ट व्यू) view.findViewById (R.id.textmsg); – ashu

0

तुम सिर्फ एक डिफ़ॉल्ट दृष्टिकोण का उपयोग कर सकते हैं:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Title") 
     .setMessage(message); 

    AlertDialog alert = builder.create(); 

    alert.show(); 

आप देख सकते हैं कि संदेश TextView अंतर्निहित होता है Alert_dialog.xml में स्क्रॉल व्यू कंटेनर। यह एक लेआउट है जिसका प्रयोग किया जाता है।

इस फ़ाइल का स्थान है post

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