How to Add Smiley/Emojis in Edittext?

H

 

Emoji.java :-

package com.android.emoji;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Emoji extends Activity implements OnClickListener {
EditText edttxtemoji;
Button btnsubmit, btnselectemoji;
TextView txtviewdisplay;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edttxtemoji = (EditText) findViewById(R.id.edttxtemoji);
btnsubmit = (Button) findViewById(R.id.btnok);
btnsubmit.setOnClickListener(this);
btnselectemoji = (Button) findViewById(R.id.btnselect);
btnselectemoji.setOnClickListener(this);
txtviewdisplay = (TextView) findViewById(R.id.txtviewdisplay);
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v == btnsubmit) {
txtviewdisplay.setText(edttxtemoji.getText());
} else if (v == btnselectemoji) {
Intent in = new Intent(this, Select_Emoji_Activity.class);
startActivity(in);
}
}

CharSequence cs;
Custom_List_Emoji cstlistemoji;
int index;

@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();

cstlistemoji = new Custom_List_Emoji(this);
@SuppressWarnings("static-access")
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs",
this.MODE_WORLD_READABLE);
index = myPrefs.getInt("key1", 0);
System.out.println("Pref Data index is:- " + index);
ImageGetter imageGetter = new ImageGetter() {
public Drawable getDrawable(String source) {
Drawable d = getResources().getDrawable(
cstlistemoji.images[index]);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
return d;
}
};
cs = Html.fromHtml(
"", imageGetter, null);
System.out.println("cs is:- " + cs);
edttxtemoji.setText(cs);
}
}

Select_Emoji_Activity.java :-

package com.android.emoji;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

public class Select_Emoji_Activity extends Activity implements OnItemClickListener{
ListView lstviewemojis;
Custom_List_Emoji cstlistemoji;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.emojis);
lstviewemojis=(ListView)findViewById(R.id.lstviewemojis);
lstviewemojis.setOnItemClickListener(this);
cstlistemoji=new Custom_List_Emoji(this);
lstviewemojis.setAdapter(cstlistemoji);
}
@Override
public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor = myPrefs.edit();
System.out.println("Emoji is:- " +arg2);
prefsEditor.putInt("key1", arg2);
prefsEditor.commit();
finish();
}
}

Custom_List_Emoji :-

package com.android.emoji;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class Custom_List_Emoji extends BaseAdapter {

public Activity context;
public LayoutInflater inflater;

public Custom_List_Emoji(Activity context) {
// TODO Auto-generated constructor stub
this.context = context;
this.inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return emojis.length;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
String temp = emojis[position];
return temp;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

TextView txtview1;
ImageView image;

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
convertView = inflater.inflate(R.layout.custom_emojis, null);
txtview1 = (TextView) convertView.findViewById(R.id.txtviewemojis);
image = (ImageView) convertView.findViewById(R.id.imgviewemoji);
}

image.setImageResource(images[position]);
txtview1.setText(emojis[position]);
return convertView;
}

 

public final int[] images = new int[] { R.drawable.emo_im_happy,
R.drawable.emo_im_sad, R.drawable.emo_im_winking,
R.drawable.emo_im_tongue_sticking_out, R.drawable.emo_im_surprised,
R.drawable.emo_im_kissing, R.drawable.emo_im_yelling,
R.drawable.emo_im_cool, R.drawable.emo_im_money_mouth,
R.drawable.emo_im_foot_in_mouth, R.drawable.emo_im_embarrassed,
R.drawable.emo_im_angel, R.drawable.emo_im_undecided,
R.drawable.emo_im_crying, R.drawable.emo_im_lips_are_sealed,
R.drawable.emo_im_laughing, R.drawable.emo_im_wtf };
public final String[] _strEmoticonLabels = new String[] { "Happy", "Sad",
"Winking", "Tongue sticking out", "Surprised", "Kissing",
"Yelling", "Cool", "Money Mouth", "Foot in mouth", "Embarrased",
"Angel", "Undecided", "Crying", "Lips are sealed", "Laughing",
"Confused" };
public final String[] emojis = new String[] { ":-)", ":-(", ";-)", ":-P",
"=-O", ":-*", ":O", "B-)", ":-$", ":-!", ":-[", "O:-)", ":-\",
":'(", ":-X", ":-D", "o_O" };

About the author

abhijit.kurlekar
By abhijit.kurlekar

Category