Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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 如何获取AutoCompleteTextView的id?_Android_Json_Android Edittext - Fatal编程技术网

Android 如何获取AutoCompleteTextView的id?

Android 如何获取AutoCompleteTextView的id?,android,json,android-edittext,Android,Json,Android Edittext,我有两个autocompletetextview,在我的第一个AutoComplete中,我从服务器得到响应 {"status":"success","clientlist":[{"cid":"1","name":"margi"},{"cid":"2","name":"steven"}],"productboxtype":[{"pbxid":"1","pbxname":"1 Dozen","qtyperbox":"12"},{"pbxid":"2","pbxname":"2 Dozens

我有两个autocompletetextview,在我的第一个AutoComplete中,我从服务器得到响应

    {"status":"success","clientlist":[{"cid":"1","name":"margi"},{"cid":"2","name":"steven"}],"productboxtype":[{"pbxid":"1","pbxname":"1 Dozen","qtyperbox":"12"},{"pbxid":"2","pbxname":"2 Dozens","qtyperbox":"24"},{"pbxid":"3","pbxname":"3 Dozens","qtyperbox":"36"}]}
我可以在我的第一个自动完成中获得姓名,而且效果很好

现在的问题是假设用户选择项“margi”,其cid为1,所以我再次向服务器发送请求,并尝试获取“margi”的产品名称,其响应为

{"status":"success","clientproduct":[{"pid":"4","name":"kangan pair","unitprice":"1500","boxqty":"1"}]}
但在选择了史蒂文之后,第二次自动完成仍然显示了坎甘·帕里

     @Override
    protected String doInBackground(String...args) {
        //Check for success tag
        //int success;
        Looper.prepare();



         try {

             JsonParseClientList jp=new JsonParseClientList();
                List<NameValuePair> params = new ArrayList<NameValuePair>();
             List<SuggestGetSetClientList> list =jp.getParseJsonWCF(acTextView.getText().toString());

                 for(int i = 0;i<list.size();i++)
                 {
                   if(list.get(i).getName().equals(acTextView.getText().toString()))
                    params.add(new BasicNameValuePair("cid",list.get(i).getId()));

                     //  catid=list.get(i).getId();



                 }

                 for(int b=0;b<list.size();b++)
                 {
                     catidtemp=list.get(b).id.toString();

                     System.out.println("cattttttiiiiddd????"+catidtemp);
                     break;
                 }

                //catidtemp=String.valueOf(selected_cid);

             System.out.println("cattttttiiiiddd????"+catidtemp);
             params.add(new BasicNameValuePair("action", "clientproduct"));

             System.out.println("su gayu server ma????"+params);

             Log.d("request!", "starting");
             // getting product details by making HTTP request
             JSONObject json = jsonParser.makeHttpRequest (
                 FEEDBACK_URL, "POST", params);
             //check your log for json response
             Log.d("Login attempt", json.toString());





             return json.getString(FEEDBACK_SUCCESS);

         }catch (JSONException e) {
             e.printStackTrace();
         }
         return null;
    }

    // After completing background task Dismiss the progress dialog

    protected void onPostExecute(String file_url) {
        //dismiss the dialog once product deleted
        pDialog.dismiss();

        //parentcat.getText().clear();
}}
@覆盖
受保护的字符串doInBackground(字符串…args){
//检查成功标签
//成功;
Looper.prepare();
试一试{
JsonParseClientList jp=新的JsonParseClientList();
List params=new ArrayList();
List List=jp.getParseJsonWCF(acTextView.getText().toString());

对于(int i=0;i如果要比较“boxqty”和“minimum_qty”,在If条件下,不应使用它。length()用于boxqty,因为它只计算字符串的长度,用户将输入,而不是它的值。

我认为当您选择“steven”时您得到的响应是clientproduct数组null。这就是为什么会调用catch块,而seconds autocomplete数组不清晰的原因。这就是为什么您在第二个autocomplete中得到上一个值

希望您能理解:) 快乐编码:)

为了不使代码检查复杂化,请查找一些更好地解释用法的教程

另外,如果您更改了适配器信息,请不要忘记呼叫:

adapter.notifyDataSetChanged();
public class Client{
    int id;
    String name;

    //getter and setter for this + constructor;
}
adapter.notifyDataSetChanged();