2016-10-06 4 views
0

enter image description hereEmail предложения ID андроид

Я хочу иметь знак в особенности же, как приложение к LinkedIn, где если пользователь вводит в его электронный идентификатор, он должен получить некоторые общие предложения. Если пользователь имеет тип

'[email protected]' 

, то он должен получить список предложений, как

[email protected] 
[email protected] 
[email protected] 
[email protected] 

внушения должны быть отображены только после ввода «@».

MainActivity

autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.text); 
    str = autoCompleteTextView.getText().toString(); 
    indexOfAt = str.indexOf("@"); 
    ObjectAdapter adapter = new ObjectAdapter(MainActivity.this, searchArrayList); 
    autoCompleteTextView.setAdapter(adapter); 
    autoCompleteTextView.setThreshold(indexOfAt); 

адаптер

public class ObjectAdapter extends BaseAdapter implements Filterable { 

    private Context context; 
    private ArrayList<String> originalList; 
    private ArrayList<String> suggestions = new ArrayList<>(); 
    private Filter filter = new CustomFilter(); 

    /** 
    * @param context  Context 
    * @param originalList Original list used to compare in constraints. 
    */ 
    public ObjectAdapter(Context context, ArrayList<String> originalList) { 
     this.context = context; 
     this.originalList = originalList; 
    } 

    @Override 
    public int getCount() { 
     return suggestions.size(); // Return the size of the suggestions list. 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 


    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    /** 
    * This is where you inflate the layout and also where you set what you want to display. 
    * Here we also implement a View Holder in order to recycle the views. 
    */ 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater = LayoutInflater.from(context); 

     ViewHolder holder; 

     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.adapter_autotext, 
        parent, 
        false); 
      holder = new ViewHolder(); 
      holder.autoText = (TextView) convertView.findViewById(R.id.autoText); 
      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     holder.autoText.setText(suggestions.get(position)); 

     return convertView; 
    } 


    @Override 
    public Filter getFilter() { 
     return filter; 
    } 

    private static class ViewHolder { 
     TextView autoText; 
    } 

    /** 
    * Our Custom Filter Class. 
    */ 
    private class CustomFilter extends Filter { 
     @Override 
     protected FilterResults performFiltering(CharSequence constraint) { 
      suggestions.clear(); 

      if (originalList != null && constraint != null) { // Check if the Original List and Constraint aren't null. 
       for (int i = 0; i < originalList.size(); i++) { 
        if (originalList.get(i).toLowerCase().contains(constraint)) { // Compare item in original list if it contains constraints. 
         suggestions.add(originalList.get(i)); // If TRUE add item in Suggestions. 
        } 
       } 
      } 
      FilterResults results = new FilterResults(); // Create new Filter Results and return this to publishResults; 
      results.values = suggestions; 
      results.count = suggestions.size(); 

      return results; 
     } 

     @Override 
     protected void publishResults(CharSequence constraint, FilterResults results) { 
      if (results.count > 0) { 
       notifyDataSetChanged(); 
      } else { 
       notifyDataSetInvalidated(); 
      } 
     } 
    } 
} 
+0

http://stackoverflow.com/q/6618409/2900127 – 7geeky

ответ

0

Вы должны использовать AutoCompleteTextView.

<AutoCompleteTextView 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="5dp" 
android:ems="10" 
android:textColor="#FFF" 
android:textColorHint="#999" 
android:textStyle="bold" 
android:padding="10dp" 
android:hint="Email Id" 
android:textSize="20sp" 
android:id="@+id/txtId" > 
<requestFocus /> 
</AutoCompleteTextView> 
Смежные вопросы