2011-08-26 9 views
5

स्ट्रिंग में edittext से पाठ और स्माइली कैसे प्राप्त करें?Edittext से स्ट्रिंग में टेक्स्ट और स्माइली कैसे प्राप्त करें?

निम्नलिखित कोड का उपयोग करके मुझे एडिटेक्स्ट में स्माइली/इमोजिस जोड़ा गया था, लेकिन टेक्स्ट/स्माइली को स्ट्रिंग प्रारूप में टेक्स्ट/स्माइली कैसे प्राप्त करें।

ImageGetter imageGetter = new ImageGetter() { 
     public Drawable getDrawable(String source) { 
      Drawable d = getResources().getDrawable(
        R.drawable.happy); 
      d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); 
      return d; 
     } 
    }; 

    cs = Html.fromHtml(
      "<img src='" 
        + getResources() 
          .getDrawable(R.drawable.happy) 
        + "'/>", imageGetter, null); 
    edttxtemoji.setText(cs); 
+0

का उपयोग कर रहा समान यहाँ कुछ कर रहा हूँ setText !!! http://stackoverflow.com/questions/16768930/implementations-of-emoji-emoticon-view-keyboard-layouts – toobsco42

उत्तर

0

उपयोग Html.toHtml (फैला पाठ)

की तरह:

String myString = Html.toHtml(cs); 
System.out.println(myString); 

संपादित करें: अंधेरे यहाँ iam खुदाई, लेकिन यह आप पाठ (स्ट्रिंग) प्रतिनिधित्व चाहते हो सकता है आपकी स्माइली का?

आप की तरह है:

cs = Html.fromHtml(
      "<img src='" 
        + getResources() 
          .getDrawable(R.drawable.happy) 
        + "'/>", imageGetter, null); 

और आप चाहते हैं:

स्ट्रिंग सीएस = ":)";

क्या यह सही है? यदि नहीं, तो मेरा पिछला उत्तर आपको आपके एचटीएमएल कोड

+0

मैंने पहले ही यह कोशिश की है लेकिन यह काम नहीं कर रहा है। –

+0

यह कैसे काम नहीं कर रहा है? – Michele

+0

यह 2 लाइनें मुझे स्ट्रिंग प्रारूप में निम्नलिखित आउटपुट दे रही हैं।

8

का तकनीकी स्ट्रिंग प्रतिनिधित्व देता है कृपया निम्नलिखित फ़ंक्शन का उपयोग करें।

public static Spannable getSmiledText(Context context, String text) { 
      SpannableStringBuilder builder = new SpannableStringBuilder(text); 
      int index;for (index = 0; index < builder.length(); index++) { 
      for (Entry<String, Integer> entry : emoticons.entrySet()) { 
       int length = entry.getKey().length(); 
       if (index + length > builder.length()) 
       continue; 
       if (builder.subSequence(index, index + length).toString().equals(entry.getKey())) { 
       builder.setSpan(new ImageSpan(context, entry.getValue()), index, index + length, 
        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
       index += length - 1; 
       break; 
       } 
      } 
      } 
      return builder; 
     } 

भावनाओं कोड के लिए निम्न ...

private static final HashMap<String, Integer> emoticons = new HashMap<String, Integer>(); 
     static { 
      emoticons.put("8-)", R.drawable.s1); 
      emoticons.put(":-&", R.drawable.s2); 
      emoticons.put(">:-)", R.drawable.s3).....}; 

और

tv_msg_send.setText(getSmiledText(getApplicationContext(), edt_msg.getText().toString())); 
+0

यह कोड Smileys नहीं मिलता है अगर मैं आपके कोड का उपयोग करता हूं तो पाठ "obj" वापस आ जाता है इसलिए यह मेरे लिए उपयोगी नहीं है। –

+0

@dipak :: लेकिन मुझे टेक्स्ट व्यू में स्माइली सेट करने के लिए सही टेक्स्ट मिला। और एक और बात मैंने इस पोस्ट से पहले कई बार आपके कोड का उपयोग करने का प्रयास किया है, लेकिन मुझे समाधान नहीं मिल रहा है। अब मैं इसके बजाय ImageGetter विधि का उपयोग नहीं कर रहा हूं, मैं "addTextChangedListener" का उपयोग कर रहा हूं और सीधे आगे कॉल करके छवि के साथ स्माइली कोड बदल रहा हूं उपरोक्त "getSmiledText" फ़ंक्शन। तो कृपया पुनः प्रयास करें, यह आपकी मदद कर सकता है – amity

+0

मैंने अपनी परियोजना में आपका कोड इस्तेमाल किया लेकिन यह मेरी मदद नहीं करता है। मदद के लिए धन्यवाद। –

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