java - 如何在具有父子关系的微调器中添加项目?

标签 java android spinner android-spinner

我的 Android 应用程序中有两个微调器。一个用于选择链式店,另一个用于选择商店。我想向两个微调器添加项目。第二个微调器的项目依赖于第一个微调器,即商店的项目应依赖于选定的项目。我也尝试过同样的方法,但商店的元素是空的。请帮助我 - 这是我尝试过的代码:

private class ChainDownloadTask extends AsyncTask<Void, Void, ArrayList<Chain>> {
        @Override
        protected void onPreExecute() {
            mProgressDialog = ProgressDialog.show(SelectStoreActivity.this, null, "Loading Chains...");
        }

        @Override
        protected ArrayList<Chain> doInBackground(Void... arg0) {
            // call web method to get all chains
            CallSoap cs = new CallSoap();
            ArrayList<Chain> chainList = cs.getAllChains();
            return chainList;
        }

        @Override
        protected void onPostExecute(ArrayList<Chain> result) {
            mArrayListChains = result;
            loadChainSpinner();
            new StoresDownloadTask().execute();
        }
    }

    private class StoresDownloadTask extends AsyncTask<Void, Void, ArrayList<Store>> {
        @Override
        protected void onPreExecute() {
            mProgressDialog.setMessage("Loading Stores...");
        }

        @Override
        protected ArrayList<Store> doInBackground(Void... arg0) {
            // call web method to get all chains
            CallSoap cs = new CallSoap();
            ArrayList<Store> chainList = cs.getAllStores();
            return chainList;
        }

        @Override
        protected void onPostExecute(ArrayList<Store> result) {
            mArrayListStores = result;
            loadStoreSpinner(mArrayListChains.get(0).getId());
            mProgressDialog.dismiss();
        }
    }

    private void loadChainSpinner() {
        ArrayList<String> chainNameList = new ArrayList<String>();
        for (Chain temp : mArrayListChains) {
            chainNameList.add(temp.getName());
        }

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(SelectStoreActivity.this, android.R.layout.simple_spinner_item, chainNameList);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        mSpinnerChain.setAdapter(adapter);
    }

    private void loadStoreSpinner(int chainId) {
        ArrayList<Store> storeList = new ArrayList<Store>();
        ArrayList<String> storeNameList = new ArrayList<String>();
        for (Store store : mArrayListStores) {
            if((""+chainId).equals(store.getChainID())){
                storeList.add(store);
                storeNameList.add(store.getFld_str_Name());
            }
        }

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(SelectStoreActivity.this, android.R.layout.simple_spinner_item, storeNameList);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        mSpinnerStores.setAdapter(adapter);
    }

enter image description here `

最佳答案

检查以下代码

for (int i = 0; i < Counter; i++) {
        strPromoterNames[i] = promoterDetailsResponse.Sub_promoters.get(i).SubpromoterName;
}


       ArrayAdapter<String> adapterPromoterDetails = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, strPromoterNames);
       adapterPromoterDetails.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
       spinnerPromoterDetails.setAdapter(adapterPromoterDetails);

关于java - 如何在具有父子关系的微调器中添加项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18099247/

相关文章:

java - 在另一个类 TextView 中显示 Spinner 所选项目

java - 记录selenium中页面的加载(打开/关闭)和搜索时间

android - SharedPreferences 应用程序上下文与 Activity 上下文

android - 根据构建类型通过 Gradle 设置 Android.mk 标志

c# - Xamarin.Android ItemSelected 事件不适用于 Spinner 小部件

android - 如何在 Spinner 中加载一个数组/字符串值列表,不包括一个值?

java - 如何在持久层和领域对象之间正确映射

java - 数据库通过网络服务同步

java - 无法使用 Gson 库对 Firestore DocumentReference 数据类型进行序列化/反序列化

java - 如何获取动态创建的微调器 android java 的选定值