java - How to get spinner data in autocompletetext view suggession and on clicking spinner items it should redirect to next spinner in new activity -
while trying type in autocompltetextview suggestions getting error ..
process: com.example.sort.spinnercity, pid: 8693 android.view.windowmanager$badtokenexception: unable add window -- token android.view.viewrootimpl$w@2e5df6b not valid; activity running? @ android.view.viewrootimpl.setview(viewrootimpl.java:579) @ android.view.windowmanagerglobal.addview(windowmanagerglobal.java:313) @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:86) @ android.widget.popupwindow.invokepopup(popupwindow.java:1258) @ android.widget.popupwindow.showasdropdown(popupwindow.java:1110) @ android.widget.listpopupwindow.show(listpopupwindow.java:658) @ android.widget.spinner$dropdownpopup.show(spinner.java:1223) @ android.widget.spinner.performclick(spinner.java:758) @ android.view.view$performclick.run(view.java:21177) @ android.os.handler.handlecallback(handler.java:739) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:148) @ android.app.activitythread.main(activitythread.java:5438) @ java.lang.reflect.method.invoke(native method) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:738) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:628) help me spinner data of cities in autocompletetext view suggession , on clicking spinner items should redirect next spinner contains area in new activity....
here code... mainactivity.java
package com.example.sort.spinnercity; import android.app.activity; import android.content.context; import android.os.bundle; import android.view.motionevent; import android.view.view; import android.view.inputmethod.inputmethodmanager; import android.widget.adapterview; import android.widget.adapterview.onitemselectedlistener; import android.widget.arrayadapter; import android.widget.autocompletetextview; import android.widget.imageview; import android.widget.spinner; public class mainactivity extends activity implements onitemselectedlistener { spinner spinnercity; //spinner spinnerarea; autocompletetextview auto_search; string city[]; imageview img_search_button; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.layout2); spinnercity = (spinner) findviewbyid(r.id.spinnercity); // spinnerarea = (spinner) findviewbyid(r.id.spinnerarea); spinnercity.setonitemselectedlistener(this); auto_search = (autocompletetextview) findviewbyid(r.id.auto_search); img_search_button = (imageview) findviewbyid(r.id.img_search_button); // autosearch adapter city = getresources().getstringarray(r.array.city_array); //test 19 jan int j = 0; for(int i=0;i<city.length;i++) { string item = city[i]; if (item instanceof charsequence) { //text.settext((charsequence)item); j++; } else { } } string outletstemp[] = new string[j]; j=0; for(int i=0;i<city.length;i++) { string item = city[i]; if (item instanceof charsequence) { //text.settext((charsequence)item); outletstemp[j] = item; j++; system.out.println(item); } else { //text.settext(item.tostring()); system.out.println(item+"test"); //outletstemp[i] = "test"; } } city = new string[outletstemp.length]; city = outletstemp; arrayadapter <charsequence> outletlist = new arrayadapter<charsequence>(this,r.layout.layout2,r.id.auto_search,city); outletlist.setdropdownviewresource(android.r.layout.select_dialog_singlechoice); //autocompleteadapter outletlist = new autocompleteadapter(this,android.r.layout.simple_list_item_1,android.r.id.text1,modeldata.outletlist); auto_search.setadapter(outletlist); auto_search.setthreshold(1); auto_search.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { inputmethodmanager inputmanager = (inputmethodmanager)getsystemservice(context.input_method_service); inputmanager.hidesoftinputfromwindow(getcurrentfocus().getwindowtoken(),inputmethodmanager.hide_not_always); string selection = (string) parent.getitematposition(position); int pos = -1; (int = 0; < city.length; i++) { if (city[i].equals(selection)) { pos = i; break; } } system.out.println("position " + pos); /* modeldata.shopposition = pos; spinner_outlets.setselection(modeldata.shopposition);*/ auto_search.setvisibility(view.gone); spinnercity.setvisibility(view.visible); /*inputmethodmanager in = (inputmethodmanager) getsystemservice(context.input_method_service); in.hidesoftinputfromwindow(view.getapplicationwindowtoken(), 0);*/ } }); auto_search.setontouchlistener(new view.ontouchlistener() { @override public boolean ontouch(view v, motionevent event) { /*view view1 = auto_search.getcurrentfocus(); if (view1 != null) { inputmethodmanager imm = (inputmethodmanager)getsystemservice(context.input_method_service); imm.hidesoftinputfromwindow(view1.getwindowtoken(), 0); }*/ /* inputmethodmanager in = (inputmethodmanager) getsystemservice(context.input_method_service); in.hidesoftinputfromwindow(v.getapplicationwindowtoken(), 0);*/ /* view view1 = this.getcurrentfocus(); if (view1 != null) { inputmethodmanager imm = (inputmethodmanager)getsystemservice(context.input_method_service); imm.hidesoftinputfromwindow(view1.getwindowtoken(), 0); } inputmethodmanager inputmanager = (inputmethodmanager) view.getcontext().getsystemservice(context.input_method_service); ibinder binder = view.getwindowtoken(); inputmanager.hidesoftinputfromwindow(binder,inputmethodmanager.hide_not_always); */ final int drawable_left = 0; final int drawable_top = 1; final int drawable_right = 2; final int drawable_bottom = 3; if(event.getrawx() >= (auto_search.getright() - auto_search.getcompounddrawables()[drawable_right].getbounds().width())) { // action here auto_search.settext(""); return true; } return false; } }); // autosearch end img_search_button.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { if(spinnercity.getvisibility() == view.visible) { auto_search.setvisibility(view.visible); spinnercity.setvisibility(view.gone); } else { auto_search.setvisibility(view.gone); spinnercity.setvisibility(view.visible); } } }); } @override public void onitemselected(adapterview<?> parent, view arg1, int pos, long arg3) { parent.getitematposition(pos); if (pos == 0) { arrayadapter<charsequence> adapter = arrayadapter .createfromresource(this, r.array.area_chennai, android.r.layout.simple_spinner_item); // spinnerarea.setadapter(adapter); } else if (pos == 1) { arrayadapter<charsequence> adapter = arrayadapter .createfromresource(this, r.array.area_mumbai, android.r.layout.simple_spinner_item); // spinnerarea.setadapter(adapter); } else if (pos == 2) { arrayadapter<charsequence> adapter = arrayadapter .createfromresource(this, r.array.area_calcutta, android.r.layout.simple_spinner_item); // spinnerarea.setadapter(adapter); } } @override public void onnothingselected(adapterview<?> arg0) { } } layout2.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="2" android:orientation="vertical"> <linearlayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"> <spinner android:id="@+id/spinnercity" android:layout_width="200dp" android:layout_height="60dp" android:layout_weight="3" android:layout_centerhorizontal="true" android:layout_margintop="8dp" android:entries="@array/city_array" /> <autocompletetextview android:id="@+id/auto_search" android:visibility="gone" android:layout_width="10dp" android:layout_height="60dp" android:textsize="20dp" android:layout_weight="3" android:drawableright="@android:drawable/ic_delete"/> <imageview android:id="@+id/img_search_button" android:layout_margintop="8dp" android:layout_width="0dp" android:layout_height="60dp" android:layout_weight="3" android:src="@android:drawable/ic_search_category_default" android:padding="3dp"/> </linearlayout> <!-- <spinner android:id="@+id/spinnerarea" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margintop="20dp" android:entries="@array/area_chennai" />--> </linearlayout> string.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">spinner</string> <string name="action_settings">settings</string> <string name="hello_world">hello world!</string> <string name="title_activity_main">mainactivity</string> <string-array name="city_array"> <item>chennai</item> <item>mumbai</item> <item>calcutta</item> </string-array> <string-array name="area_chennai"> <item>mumbai</item> <item>chennai</item> <item>kolkata</item> <item>bangalore</item> </string-array> <string-array name="area_mumbai"> <item>karachi</item> <item>lahore</item> <item>faisalabad</item> <item>rawalpindi</item> </string-array> <string-array name="area_calcutta"> <item>colombo</item> <item>dehiwala-mount lavinia</item> <item>moratuwa</item> <item>kotte</item> </string-array> <string name="title_activity_main_activity2">mainactivity2</string> </resources>
Comments
Post a Comment