View difference between Paste ID: DMHKci7w and nEECfgN3
SHOW: | | - or go back to the newest paste.
1
main.xml
2
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
    xmlns:tools="http://schemas.android.com/tools"
4
    android:layout_width="match_parent"
5
    android:layout_height="match_parent" >
6
7
    <com.test_autocomplete_text_and_image.CustomAutoCompleteTextView
8
        android:id="@+id/autocomplete"
9
        android:layout_width="fill_parent"
10
        android:layout_height="wrap_content"
11
        android:layout_centerHorizontal="true"
12
        android:textColor="@android:color/black"
13
        android:hint="autocomplete"
14
        android:completionThreshold="1"
15
        />
16
17
    <TextView
18
        android:id="@+id/tv_currency"
19
        android:layout_width="wrap_content"
20
        android:layout_height="wrap_content"
21
        android:layout_centerHorizontal="true"
22
        android:layout_below="@id/autocomplete"
23
        />
24
25
</RelativeLayout>
26
27
autocomplete_layout.xml
28
29
<?xml version="1.0" encoding="utf-8"?>
30
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
31
    android:layout_width="match_parent"
32
    android:layout_height="match_parent"
33
    android:orientation="horizontal"    
34
     >
35
     
36
    <ImageView 
37
	        android:id="@+id/flag"
38
	        android:layout_width="wrap_content"
39
	        android:layout_height="wrap_content"
40
	        android:contentDescription="@string/hello_world"
41
	        android:padding="10dp"
42
	/>
43
        
44
	<TextView 
45
	        android:id="@+id/txt"
46
	        android:layout_width="wrap_content"
47
	        android:layout_height="wrap_content"
48
	        android:textSize="15dp"	
49
	        android:padding="10dp"	        
50
	/>  
51
    	
52
</LinearLayout>
53
54
55
import android.content.Context;
56
import android.util.AttributeSet;
57
import android.widget.AutoCompleteTextView;
58
59
import java.util.HashMap;
60
61
/** Customizing AutoCompleteTextView to return Country Name   
62
 *  corresponding to the selected item
63
 */
64
public class CustomAutoCompleteTextView extends AutoCompleteTextView {
65
	
66
	public CustomAutoCompleteTextView(Context context, AttributeSet attrs) {
67
		super(context, attrs);
68
	}
69
70
	/** Returns the country name corresponding to the selected item */
71
	@Override
72
	protected CharSequence convertSelectionToString(Object selectedItem) {
73
		/** Each item in the autocompetetextview suggestion list is a hashmap object */
74
		HashMap<String, String> hm = (HashMap<String, String>) selectedItem;
75
		return hm.get("txt");
76
	}
77
}
78
79
80
81
import android.content.Context;
82
import android.util.Log;
83
import android.view.LayoutInflater;
84
import android.view.View;
85
import android.view.ViewGroup;
86
import android.widget.ArrayAdapter;
87
import android.widget.ImageView;
88
import android.widget.TextView;
89
import java.util.ArrayList;
90
import java.util.List;
91
92
public class SearchItemArrayAdapter extends ArrayAdapter<CountryEntry>
93
{
94
    private static final String tag = "SearchItemArrayAdapter";
95
    private CountryEntry listEntry;
96
    private TextView autoItem;
97
    private ImageView categoryIcon;
98
    private List<CountryEntry> countryEntryList = new ArrayList<CountryEntry>();
99
100
    /**
101
     *
102
     * @param context
103
     * @param textViewResourceId
104
     * @param objects
105
     */
106
    public SearchItemArrayAdapter(Context context, int textViewResourceId, List<CountryEntry> objects)
107
    {
108
        super(context, textViewResourceId, objects);
109
        countryEntryList = objects;
110
        Log.d(tag, "Search List -> journalEntryList := " + countryEntryList.toString());
111
    }
112
113
    @Override
114
    public int getCount()
115
    {
116
        return this.countryEntryList.size();
117
    }
118
119
    @Override
120
    public CountryEntry getItem(int position)
121
    {
122
        CountryEntry journalEntry = this.countryEntryList.get(position);
123
        Log.d(tag, "*-> Retrieving JournalEntry @ position: " + String.valueOf(position) + " : " + journalEntry.toString());
124
        return journalEntry;
125
    }
126
127
    @Override
128
    public View getView(int position, View convertView, ViewGroup parent)
129
    {
130
        View row = convertView;
131
        LayoutInflater inflater = LayoutInflater.from(getContext());
132
133
        if (row == null)
134
        {
135
            row = inflater.inflate(R.layout.autocomplete_layout, parent, false);
136
        }
137
138
        listEntry = this.countryEntryList.get(position);
139
        String searchItem = listEntry.title;
140
        autoItem = (TextView) row.findViewById(R.id.txt);
141
        autoItem.setText(searchItem);
142
143
        // Get a reference to ImageView holder
144
        categoryIcon = (ImageView) row.findViewById(R.id.flag);
145
        categoryIcon.setImageBitmap(listEntry.image);
146
147
        return row;
148
    }
149
}
150
151
152
153
import android.content.Context;
154
import android.graphics.Bitmap;
155
import android.graphics.BitmapFactory;
156
import android.graphics.drawable.BitmapDrawable;
157
import android.graphics.drawable.Drawable;
158
import android.support.v7.app.ActionBarActivity;
159
import android.os.Bundle;
160
import android.view.LayoutInflater;
161
import android.view.Menu;
162
import android.view.MenuItem;
163
import android.view.View;
164
import android.view.ViewGroup;
165
import android.widget.AutoCompleteTextView;
166
167
import android.os.Bundle;
168
import android.app.Activity;
169
import android.view.Menu;
170
import android.widget.ArrayAdapter;
171
import android.widget.AutoCompleteTextView;
172
import android.widget.ImageView;
173
174
import java.io.ByteArrayInputStream;
175
import java.util.ArrayList;
176
177
public class MainActivity extends ActionBarActivity {
178
179
180
    AutoCompleteTextView mAutoCompleteTextView;
181
182
    @Override
183
    protected void onCreate(Bundle savedInstanceState) {
184
        super.onCreate(savedInstanceState);
185
        setContentView(R.layout.activity_main);
186
187
188
        Bitmap theImage = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
189
190
        // Add the country details
191
192
        // Getting a reference to CustomAutoCompleteTextView of activity_main.xml layout file
193
        CustomAutoCompleteTextView autoComplete = ( CustomAutoCompleteTextView) findViewById(R.id.autocomplete);
194
195
        ArrayList<CountryEntry> list = new ArrayList<CountryEntry>();
196
197
        // Add it to array
198
        list.add(new CountryEntry("india", theImage));
199
        list.add(new CountryEntry("usa", theImage));
200
        SearchItemArrayAdapter adapter = new SearchItemArrayAdapter(this, R.layout.autocomplete_layout, list);
201
202
        autoComplete.setAdapter(adapter);
203
204
    }
205
206
}
207
208
import android.graphics.Bitmap;
209
public class CountryEntry {
210
    public String title;
211
    public Bitmap image;
212
213
    public CountryEntry(String title, Bitmap image) {
214
        this.title = title;
215
        this.image = image;
216
    }
217
}