diff --git a/.idea/.name b/.idea/.name index b3405b3..25519b5 100644 --- a/.idea/.name +++ b/.idea/.name @@ -1 +1 @@ -My Application \ No newline at end of file +TagsEditText \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index c5e153d..f232bf9 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,8 @@ - - + + diff --git a/TagsEditText/src/main/java/mabbas007/tagsedittext/TagsEditText.java b/TagsEditText/src/main/java/mabbas007/tagsedittext/TagsEditText.java index 19076ee..9f3f39b 100644 --- a/TagsEditText/src/main/java/mabbas007/tagsedittext/TagsEditText.java +++ b/TagsEditText/src/main/java/mabbas007/tagsedittext/TagsEditText.java @@ -8,7 +8,6 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; -import android.graphics.drawable.ShapeDrawable; import android.net.Uri; import android.os.Build; import android.support.annotation.Nullable; @@ -21,7 +20,6 @@ import android.text.style.ClickableSpan; import android.text.style.ImageSpan; import android.util.AttributeSet; -import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.TextView; @@ -50,7 +48,7 @@ public class TagsEditText extends EditText private ArrayList mTags = new ArrayList<>(); - private OnTagsChangedListener mListener; + private TagsEditListener mListener; public TagsEditText(Context context) { @@ -255,10 +253,16 @@ private void removeSpan(Editable editable, TagSpan span, boolean includeSpace) private void setTags() { afterTextEnabled = false; + boolean isEnterClicked = false; final Editable editable = getText(); - String str = editable.toString().replaceAll("\n", " "); + String str = editable.toString(); + if(str.contains("\n")) + { + str = str.replaceAll("\n", " "); + isEnterClicked = true; + } boolean isDeleting = mLastString.length() > str.length(); @@ -279,6 +283,10 @@ private void setTags() mLastString = str; afterTextEnabled = true; + if(isEnterClicked && mListener != null) + { + mListener.onEditingFinished(); + } } private void buildTags(String str) @@ -380,14 +388,15 @@ public TextView createTextView(String text) return textView; } - public void setOnTagsChangedListener(OnTagsChangedListener listener) + public void setTagsListener(TagsEditListener listener) { mListener = listener; } - public interface OnTagsChangedListener + public interface TagsEditListener { void onTagsChanged(ArrayList tags); + void onEditingFinished(); } @Override diff --git a/app/src/main/java/mabbas007/myapplication/MainActivity.java b/app/src/main/java/mabbas007/myapplication/MainActivity.java index f07b1dc..5524206 100644 --- a/app/src/main/java/mabbas007/myapplication/MainActivity.java +++ b/app/src/main/java/mabbas007/myapplication/MainActivity.java @@ -1,30 +1,58 @@ package mabbas007.myapplication; +import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.util.Log; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; +import android.widget.RelativeLayout; + +import java.util.ArrayList; +import java.util.Arrays; import mabbas007.tagsedittext.TagsEditText; -public class MainActivity extends AppCompatActivity +public class MainActivity extends AppCompatActivity implements TagsEditText.TagsEditListener { + private static final String TAG = "MainActivity"; + private TagsEditText mTagsEditText; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - final TagsEditText tagsEditText = (TagsEditText) findViewById(R.id.tagsEditText); + mTagsEditText = (TagsEditText) findViewById(R.id.tagsEditText); Button button = (Button) findViewById(R.id.btnChangeColor); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - tagsEditText.setTagsBackgroundColor(android.R.color.holo_orange_dark); + mTagsEditText.setTagsBackgroundColor(android.R.color.holo_orange_dark); //tagsEditText.setTagsTextColor(R.color.colorPrimary); } }); + + + mTagsEditText.setTagsListener(this); + } + + @Override + public void onTagsChanged(ArrayList tags) + { + Log.d(TAG,"Tags changed: "); + Log.d(TAG, Arrays.toString(tags.toArray())); + } + + @Override + public void onEditingFinished() + { +// InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); +// imm.hideSoftInputFromWindow(mTagsEditText.getWindowToken(), 0); +// //mTagsEditText.clearFocus(); } }