Gmail Type Compose : Email fill Autosuggestion Code

MultiAutoComplete is an Android Gmail style token auto-complete text field and filter. It's designed to have an extremely simple API to make it easy for anyone to implement this functionality while still exposing enough customization to let you make it awesome.

Here i Write the Android App simple compose page.

ComposeActivity.java
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;

import org.json.JSONArray;
import org.json.JSONObject;

import java.util.ArrayList;

import filequick.pk.com.file_quick.R;
import filequick.pk.com.file_quick.R;
import filequick.pk.com.file_quick.interfaces.RequestHandler;
import filequick.pk.com.file_quick.volleyhttp.HttpPostResquest;
/** * Created by Raj Kumar on 2017-08-07. */ public class ComposeAcivity extends AppCompatActivity implements RequestHandler{ private String mAction; private ArrayList<ChipsItem> mList; private ChipsAdapter mChipsAdapter; private EditText mMessageTitle, mComposeBody; private ContactsCompletionView cc_text, bcc_text, toText; private ImageView tv_show_hideccbcc; private View ll_cc_bcc; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.share_compose); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setTitle("Compose"); setSupportActionBar(toolbar); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); ll_cc_bcc = findViewById(R.id.ll_ccbcc); tv_show_hideccbcc = (ImageView) findViewById(R.id.tv_showhideccbcc); tv_show_hideccbcc.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ll_cc_bcc.setVisibility(ll_cc_bcc.isShown() ? View.GONE : View.VISIBLE); tv_show_hideccbcc.setImageResource(ll_cc_bcc.isShown() ? R.mipmap.ic_keyboard_arrow_up_black_24dp : R.mipmap.ic_keyboard_arrow_down_black_24dp); } }); mMessageTitle = (EditText) findViewById(R.id.ed_subText); mComposeBody = (EditText) findViewById(R.id.ed_comText); cc_text= (ContactsCompletionView) findViewById(R.id.bet_cctext); bcc_text= (ContactsCompletionView) findViewById(R.id.bet_bcctext); toText= (ContactsCompletionView) findViewById(R.id.ed_toText); getDropDownContacts(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.compose_menu, menu); return true; } private void getDropDownContacts() { // Here Call Json for to retrive your contacts,emails // Here You can write code either POST or GET try { String url = "Your required Json Url"; JSONObject object = new JSONObject(); new HttpPostResquest(this, this, url, object.toString(),1); } catch (Exception e) { e.printStackTrace(); } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: ComposeAcivity.this.finish(); break; default: break; } return super.onOptionsItemSelected(item); } @Override public void requestStarted() { //Processbar implementaion } @Override public void requestCompleted(JSONObject response) { try { contactsResult(response); } catch (Exception e) { e.printStackTrace(); } mChipsAdapter = new ChipsAdapter(this, mList); toText.setAdapter(mChipsAdapter); toText.setDropDownBackgroundResource(R.color.white); toText.allowCollapse(true); toText.setThreshold(1); toText.setCursorVisible(true); toText.setTokenClickStyle(TokenCompleteTextView.TokenClickStyle.Select); toText.setDeletionStyle(TokenCompleteTextView.TokenDeleteStyle.Clear); } @Override public void requestEndedWithError(String error, int errorcode) { //Write code here Error handle } private void contactsResult(JSONObject results) throws Exception { if (results != null && results.length() > 0) { JSONObject object = new JSONObject(results.toString()); JSONArray array = object.getJSONArray("array_name"); if (array != null && array.length() > 0) { mList = new ArrayList<ChipsItem>(); for (int i = 0; i < array.length(); i++) { JSONObject jObject = array.getJSONObject(i); String useremails = jObject.optString("contacttoken");//email or name useremails = useremails.trim(); ChipsItem chips = new ChipsItem(useremails); mList.add(chips); } } } } }
My result Screen shot:




Comments