Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用于自动完成视图的TextWatcher_Android_Json_Autocompletetextview_Textwatcher - Fatal编程技术网

Android 用于自动完成视图的TextWatcher

Android 用于自动完成视图的TextWatcher,android,json,autocompletetextview,textwatcher,Android,Json,Autocompletetextview,Textwatcher,我试图在自动完成文本视图中添加或删除一封信时连续调用json Web服务。这里一切正常。但当我尝试从自动完成textview生成的列表中选择一个选项时,现在再次调用Json,应用程序崩溃。(即)自动完成中选择的值再次作为参数传递给json get方法,应用程序崩溃。谁能帮我解决这个问题 companyName_autoComplete = (AutoCompleteTextView) findViewById(R.id.companyName_autoComplete); selectIndu

我试图在自动完成文本视图中添加或删除一封信时连续调用json Web服务。这里一切正常。但当我尝试从自动完成textview生成的列表中选择一个选项时,现在再次调用Json,应用程序崩溃。(即)自动完成中选择的值再次作为参数传递给json get方法,应用程序崩溃。谁能帮我解决这个问题

companyName_autoComplete = (AutoCompleteTextView) findViewById(R.id.companyName_autoComplete);

selectIndustry_button.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub
            SearchCPS_WS();
        }
    });


private void SearchCPS_WS() {

AsyncHttpClient client = new AsyncHttpClient();
        RequestParams params = new RequestParams();

        Log.i("WebService", "WebService: "+Httppost_Links.SEARCH_COMPANY_NAME_ADD_COMPANY+textInAutoComplete+"5@0");

        client.get(Httppost_Links.SEARCH_COMPANY_NAME_ADD_COMPANY+textInAutoComplete+"/5@0", params,
                new AsyncHttpResponseHandler() {

                    @Override
                    public void onSuccess(String response) {
                        // TODO Auto-generated method stub

                        Log.i("SearchCPS_WS response: ",
                                "SearchCPS_WS response: " + response);


}
这是我的堆栈:

05-06 08:34:11.002: E/AndroidRuntime(5451): FATAL EXCEPTION: main
    05-06 08:34:11.002: E/AndroidRuntime(5451): Process: com.bvibes, PID: 5451
    05-06 08:34:11.002: E/AndroidRuntime(5451): java.lang.IllegalArgumentException: Illegal character in path at index 78: http://beta.teambv.us/mobile/services/json/SearchCompanyNameList.json/Fountain Powerboat Industries, Inc./5@0?
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at java.net.URI.create(URI.java:727)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:75)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at com.loopj.android.http.AsyncHttpClient.get(AsyncHttpClient.java:338)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at com.loopj.android.http.AsyncHttpClient.get(AsyncHttpClient.java:317)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at com.bvibes.Profile_Activity.SearchCPS_WS(Profile_Activity.java:156)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at com.bvibes.Profile_Activity.access$0(Profile_Activity.java:147)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at com.bvibes.Profile_Activity$3.afterTextChanged(Profile_Activity.java:128)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.TextView.sendAfterTextChanged(TextView.java:7424)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.TextView.setText(TextView.java:3822)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.TextView.setText(TextView.java:3671)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.EditText.setText(EditText.java:80)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.TextView.setText(TextView.java:3646)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.AutoCompleteTextView.replaceText(AutoCompleteTextView.java:945)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.AutoCompleteTextView.performCompletion(AutoCompleteTextView.java:891)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.AutoCompleteTextView.access$500(AutoCompleteTextView.java:91)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.AutoCompleteTextView$DropDownItemClickListener.onItemClick(AutoCompleteTextView.java:1192)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.AdapterView.performItemClick(AdapterView.java:299)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.AbsListView.performItemClick(AbsListView.java:1113)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2904)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.widget.AbsListView$3.run(AbsListView.java:3638)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.os.Handler.handleCallback(Handler.java:733)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.os.Handler.dispatchMessage(Handler.java:95)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.os.Looper.loop(Looper.java:136)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at android.app.ActivityThread.main(ActivityThread.java:5017)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at java.lang.reflect.Method.invokeNative(Native Method)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at java.lang.reflect.Method.invoke(Method.java:515)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
    05-06 08:34:11.002: E/AndroidRuntime(5451):     at dalvik.system.NativeStart.main(Native Method)
05-06 08:34:11.002:E/AndroidRuntime(5451):致命异常:主
05-06 08:34:11.002:E/AndroidRuntime(5451):进程:com.bvibes,PID:5451
05-06 08:34:11.002:E/AndroidRuntime(5451):java.lang.IllegalArgumentException:索引78处的路径中存在非法字符:http://beta.teambv.us/mobile/services/json/SearchCompanyNameList.json/Fountain 动力船工业公司/5@0?
05-06 08:34:11.002:E/AndroidRuntime(5451):位于java.net.URI.create(URI.java:727)
05-06 08:34:11.002:E/AndroidRuntime(5451):位于org.apache.http.client.methods.HttpGet.(HttpGet.java:75)
05-06 08:34:11.002:E/AndroidRuntime(5451):位于com.loopj.android.http.AsyncHttpClient.get(AsyncHttpClient.java:338)
05-06 08:34:11.002:E/AndroidRuntime(5451):位于com.loopj.android.http.AsyncHttpClient.get(AsyncHttpClient.java:317)
05-06 08:34:11.002:E/AndroidRuntime(5451):在com.bvibes.Profile_Activity.SearchCPS_WS(Profile_Activity.java:156)
05-06 08:34:11.002:E/AndroidRuntime(5451):在com.bvibes.Profile_Activity.access$0(Profile_Activity.java:147)
05-06 08:34:11.002:E/AndroidRuntime(5451):在com.bvibes.Profile_Activity$3.afterTextChanged(Profile_Activity.java:128)
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.widget.TextView.sendAfterTextChanged(TextView.java:7424)
05-06 08:34:11.002:E/AndroidRuntime(5451):位于android.widget.TextView.setText(TextView.java:3822)
05-06 08:34:11.002:E/AndroidRuntime(5451):位于android.widget.TextView.setText(TextView.java:3671)
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.widget.EditText.setText(EditText.java:80)
05-06 08:34:11.002:E/AndroidRuntime(5451):位于android.widget.TextView.setText(TextView.java:3646)
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.widget.AutoCompleteTextView.replaceText(AutoCompleteTextView.java:945)
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.widget.AutoCompleteTextView.performCompletion(AutoCompleteTextView.java:891)
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.widget.AutoCompleteTextView.access$500(AutoCompleteTextView.java:91)
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.widget.AutoCompleteTextView$DropDownItemClickListener.onItemClick(AutoCompleteTextView.java:1192)
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.widget.AdapterView.performItemClick(AdapterView.java:299)
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.widget.AbsListView.performItemClick(AbsListView.java:1113)
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.widget.AbsListView$PerformClick.run(AbsListView.java:2904)
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.widget.AbsListView$3.run(AbsListView.java:3638)
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.os.Handler.handleCallback(Handler.java:733)上
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.os.Handler.dispatchMessage(Handler.java:95)上
05-06 08:34:11.002:E/AndroidRuntime(5451):在android.os.Looper.loop(Looper.java:136)上
05-06 08:34:11.002:E/AndroidRuntime(5451):位于android.app.ActivityThread.main(ActivityThread.java:5017)
05-06 08:34:11.002:E/AndroidRuntime(5451):位于java.lang.reflect.Method.Invokenactive(本机方法)
05-06 08:34:11.002:E/AndroidRuntime(5451):位于java.lang.reflect.Method.invoke(Method.java:515)
05-06 08:34:11.002:E/AndroidRuntime(5451):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
05-06 08:34:11.002:E/AndroidRuntime(5451):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
05-06 08:34:11.002:E/AndroidRuntime(5451):在dalvik.system.NativeStart.main(本机方法)

发生这种情况是因为URL中有空格,这部分:

Fountain Powerboat Industries, Inc.

你可以用
%20
替换它们,根据。

没有代码,我做梦也想不到。在所有的自动完成文本视图都给出了一个结果列表之后,当我点击该列表时,我的应用程序会显示:“索引76路径中的非法字符”发布你的代码和整个堆栈跟踪,除非我们看到代码,否则我们无法帮助你。在飞行中解释你的问题就像在没有纸和笔的情况下教数学一样。不要使用
TextWatcher
:ACTV使用适配器及其可过滤功能调用getFilter()。filter()以过滤掉提供的文本约束你是对的。整个问题归结为一个非法的URL(不管怎么说,如exeption所述)。@Ridcully这就是你应该在没有任何TextWatcher和AsyncHttpClient的情况下使用它的方式:而是使用内部
过滤器
功能