从服务器动态添加数据以自动完成 Textview

2024-01-27

我想在我的android应用程序中实现google类型搜索,为此我使用了自动完成文本视图,当我一个接一个地输入字符时它非常有效,但是当我同时输入多个字符时会出现问题,我的应用程序显示一个对话框并强制关闭。 提前致谢

public class Activity_ListItem extends Activity {
public Context mContext;
// views declaration
public AutoCompleteTextView txtAutoComplete;
public ListView lvItems;
// arrayList for Adaptor
ArrayList<String> listItems;
// getting input from AutocompleteTxt
String strItemName;
// making Adaptor for autocompleteTextView
ArrayAdapter<String> adaptorAutoComplete;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // for showing full screen
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_listitem);
    mContext = this;
    listItems = new ArrayList<String>();
    // Declaring and getting all views objects
    Button btnShare = (Button) findViewById(R.id.ListItem_btnShare);
    Button btnSort = (Button) findViewById(R.id.ListItem_btnSort);
    lvItems = (ListView) findViewById(R.id.ListItem_lvItem);
    txtAutoComplete = (AutoCompleteTextView) findViewById(R.id.ListItem_autoComplete);

    // adding listeners to button
    btnShare.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

        }
    });
    btnSort.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

        }
    });
    // setting adaptor to autoComplete TextView
//  adaptorAutoComplete = new ArrayAdapter<String>(mContext,android.R.layout.simple_dropdown_item_1line, listItems);
    txtAutoComplete.setThreshold(1);

    // adding Listener to Auto CompleteText View
    txtAutoComplete.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence charEnter, int start, int before,
                int count) {
            // TODO Auto-generated method stub
            strItemName = charEnter.toString();
           new FetchItemListFromServer().execute();

        }

        @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
        /*  strItemName = txtAutoComplete.getText().toString();
            new FetchItemListFromServer().execute();*/
            // adaptorAutoComplete.notifyDataSetChanged();
        }
    });
} // on create ends

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity__list_item, menu);
    return true;
} // method ends

public SoapObject getDataFromServer(String product_name, String store_id) {
    // all variables for Soap
    String SOAP_ACTION = "http://www.SupermarketAPI.com/COMMERCIAL_SearchForItem";
    String NAMESPACE = "http://www.SupermarketAPI.com";
    String METHOD_NAME = "COMMERCIAL_SearchForItem";
    String URL = "http://www.supermarketapi.com/api.asmx?WSDL";
    SoapObject objSoap = null;
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    // Use this to add parameters
    request.addProperty("APIKEY", "8b0e05b569");
    request.addProperty("ItemName",strItemName);
    request.addProperty("StoreID", "9829ae4237");
    // Declare the version of the SOAP request
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
            SoapEnvelope.VER11);
    envelope.setOutputSoapObject(request);
    envelope.dotNet = true;
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

    // this is the actual part that will call the webservice
    try {
        androidHttpTransport.call(SOAP_ACTION, envelope);
        // Get the SoapResult from the envelope body.
        objSoap = (SoapObject) envelope.getResponse();
        if (objSoap != null) {
            String strData = objSoap.toString();
            System.out.println("envelop.getResponse//////"
                    + strData.toString());
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
    return objSoap;
} // method ends

public class FetchItemListFromServer extends AsyncTask<Void, Void, Void> {
    SoapObject objSoap = null;

    @Override
    protected Void doInBackground(Void... arg0) {
        // TODO Auto-generated method stub
        listItems.clear();
        objSoap = getDataFromServer(strItemName, "");
        if (objSoap != null) {
            System.out.println("getPropertyCountinevents//////////"
                    + objSoap.getPropertyCount());
            for (int i = 0; i < objSoap.getPropertyCount(); i++) {
                Object obj = objSoap.getProperty(i);
                if (obj instanceof SoapObject) {
                    SoapObject objNew = (SoapObject) obj;
                    listItems
                            .add(objNew.getProperty("Itemname").toString());
                }
            }
        }
        System.out.println("ArrayList size//////////"
                + listItems.size());
        runOnUiThread(new Runnable(){
            public void run(){
                adaptorAutoComplete = new ArrayAdapter<String>(mContext,android.R.layout.simple_dropdown_item_1line, listItems);


                 txtAutoComplete.setAdapter(adaptorAutoComplete);
                 adaptorAutoComplete.notifyDataSetChanged();
            }
        });
        return null;
    } // method ends


 } // asyntask class ends
 } // final class ends

您可以像这样使用 asynytask

public class GetLocations extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            // getting GPS status
            isGPSEnabled = manager
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);
            // getting network status
            isNetworkEnabled = manager
                    .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
            if (isGPSEnabled) {
                /*
                 * Criteria criteria = new Criteria(); String bestProvider =
                 * manager.getBestProvider(criteria, false); Location location =
                 * manager.getLastKnownLocation(bestProvider); double lat
                 * =location.getLatitude(); double longi
                 * =location.getLongitude();
                 * System.out.println("getting location continous ////// Lattti "
                 * +location.getLatitude() );
                 * System.out.println("getting location continous ////// LONGITU "
                 * + location.getLongitude());
                 */
                manager.requestLocationUpdates(
                        LocationManager.NETWORK_PROVIDER, 3000, 0, mylistener);

            } else {
                Toast.makeText(MyService.this, "Please oN Gps ",
                        Toast.LENGTH_LONG).show();
            }
        }

        @Override
        protected Void doInBackground(Void... params) {
            // TODO Auto-generated method stub
            // getting current lattitude and longitude

            return null;
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从服务器动态添加数据以自动完成 Textview 的相关文章

随机推荐

  • 如何在 Codeigniter 中创建小部件系统

    我正在 Codeigniter 中创建一个自定义 CMS 并且我想要一个类似于 Wordpress 中使用的小部件系统 例如 我想要一个小部件 显示侧边栏上显示的最后 5 篇帖子 我还希望能够逐页控制此小部件显示的页面 我在用Phil St
  • 制作频率表

    我应该创建一个包含 256 个 DWORD 的频率表 并使用 ASCII 代码作为索引来计算字符串中字符出现的次数 我陷入了如何使用存储的 ASCII 值作为索引并增加该索引的困境 这是我到目前为止所拥有的 TITLE String Fin
  • jsf 2.2(最终版)不适用于 Jboss 7.1.1

    在我看来 JSF 2 2 在 JBoss 7 1 1 上根本不起作用 使用 jboss 的 multi jsf 我只是用 jsf 2 2 的相应 jar 替换了 jsf api 和 jsf 实现模块 当我的应用程序启动时 我看到以下错误 0
  • 为什么stream::good 是错误的示例?

    我给出了一个答案 我想每次通过循环检查流的有效性here https stackoverflow com a 28277950 2642059 我原来使用的代码good看起来类似于 ifstream foo foo txt while fo
  • TabLayout:单击Tab TextView可在列表视图顶部滚动

    我在 TabLayout 中有两个片段 现在 我想向选项卡添加一个 onclick 侦听器 每个片段都包含一个列表视图 是否可以单击选项卡布局并将列表视图置于顶部 谢谢 覆盖onTabReslected Tab tab method htt
  • shell脚本来杀死tomcat服务,如果它在一定时间后没有被stop命令停止?

    我想编写shell脚本来启动和停止tomcat服务器 为了停止tomcat 我使用这个命令 bin shudown sh 或 bin catalina sh stop 大多数情况下这不起作用 tomcat仍在运行 所以我想在发出关闭命令后杀
  • C++ 正则表达式 Visual Studio Community 2015 给出意外结果

    使用 Visual Studio Community 2015 C 使用意想不到的结果 源代码 include
  • XPath 获取父元素

    我有一个与 XPath 相关的问题 我有一个 XML 条目列表 如下所示
  • 如何设置子两个div 50%,与父div 50%

    我有以下类型的模式 如何将第一个和第二个子 Div 类的 css 更改应用到父 div 的 50 如何给子div设置50 50 div class parentDiv div class childDiv 50 width div div
  • Java类型检查器注解的@Retention

    Java 8 类型注释 JSR 308 允许类型检查器执行静态代码分析 例如 检查器框架 https checkerframework org 可以检查是否有可能nullness via NonNull注释 不同的项目定义了自己的NonNu
  • C# - 可以隐藏公共继承的方法(例如,将其设为派生类的私有方法)

    假设我有带有公共方法 A 和 B 的 BaseClass 并通过继承创建 DerivedClass e g public DerivedClass BaseClass 现在我想在 DerivedClass 中开发一个使用 A 和 B 的方法
  • 检查2个R程序是否相同

    最近我了解到我可以使用identical or all equal检查 2 个数据集是否相同 我还可以用它们来检查 2 个 R 程序是否相同吗 还有比下面更好或更合适的方法吗 program 1 lt readLines c r stuff
  • 是否可以使用 Windows 命令行编辑二进制文件?

    Windows 中有没有办法从命令行编辑二进制文件 即可以写入批处理文件的方式 我希望能够在现有文件中的已知位置编辑单个字节 这个现有问题 1 已经解决 但这是一个 Linux 解决方案 我正在寻找类似的 Windows 版本 背景 从 S
  • 如何获取 DataSet 作为 Entity Framework 5.0 中查询的结果?

    我不确定这是否可能 我可能尝试使用错误的工具来完成我想做的工作 假设我想要执行以下操作 我执行一个名为 GetTableName 的函数 该函数返回我想要从中获取数据的 SQL 表的名称 我执行另一个名为 GetFields 的函数 该函数
  • jQuery UI ajax 选项卡 - 在选项卡内加载链接时请求成倍增加

    我正在使用 jQuery UI 选项卡 通过 ajax 加载选项卡内容 内容可能包含我想要在所选选项卡中加载的链接 为了实现这一点 我使用这段代码 tab div tabs load function event ui a not targ
  • 修改函数参数

    很抱歉 如果这是一个愚蠢的问题 但我已经寻找了一段时间并没有真正找到答案 如果我正在编写一个 python 函数 例如 def function in1 in2 in1 in1 1 in2 in2 1 我该如何坚持这些改变 我知道他们为什么
  • 如何映射嵌套的复杂JSON对象并将它们保存到核心数据?

    我在将复杂的嵌套 JSON 数据映射和保存到核心数据对象时遇到问题 它用于在离线模式和缓存的情况下读取数据 JSON也有代码 它代表代码列表中对象的id JSON 中对象的嵌套深度可以在 5 8 个对象之间 此类 简化的 JSON 的示例如
  • 在 iOS 上缩小图像最节省内存的方法是什么?

    在后台线程中 我的应用程序需要从磁盘读取图像 将其缩小到屏幕大小 1024x768 或 2048x1536 并将其保存回磁盘 原始图像大部分来自相机胶卷 但其中一些可能具有更大的尺寸 例如 3000x3000 随后 在不同的线程中 这些图像
  • PassportJs 身份验证无限循环和执行(默认)查询

    我正在尝试使用 PassportJs 和 Sequelize 构建身份验证系统 我自己制作了注册系统 使用Sequelize 我只想使用 PassportJS 进行登录 它不会将我重定向到 failureRedirect 路由 也不会重定向
  • 从服务器动态添加数据以自动完成 Textview

    我想在我的android应用程序中实现google类型搜索 为此我使用了自动完成文本视图 当我一个接一个地输入字符时它非常有效 但是当我同时输入多个字符时会出现问题 我的应用程序显示一个对话框并强制关闭 提前致谢 public class