当前位置: 首页 > 知识库问答 >
问题:

在Android中没有调用适配器的getpost()

令狐弘益
2023-03-14

我有一个微调器,其元素保存在共享引用中。当我从微调器中选择任何元素并单击“保存”按钮时,它会将该元素保存在SharedRef中,并且每当我返回此活动时,微调器将与我选择并保存的相同元素一起被选中。当我关闭应用程序并从手机中当前运行的应用程序中删除时,问题就会出现。在这种情况下,当我打开应用程序并转到该活动时,将使用第0个元素选择微调器。我正在从SharedRef获取保存的元素,但未调用getPosition()。为什么会这样?

这是我的方法:

public boolean setBranchIds(ArrayList<String> tdBrlist) {
    try {
        branchList = tdBrlist;
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                branchSpinner = new Spinner(Activity_Settings.this);


                TableRow.LayoutParams tdpid_spinner_params = new TableRow.LayoutParams(
                        0, LayoutParams.WRAP_CONTENT, 3f);
                branchSpinner.setLayoutParams(tdpid_spinner_params);
                branchRow.addView(branchSpinner);
                branchSpinner.setPrompt("Select Branch");

                if (branchList.size() > 0) {
                    ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(
                            Activity_Settings.this,
                            android.R.layout.simple_spinner_item,
                            branchList);
                    branchSpinner.setAdapter(spinnerAdapter);

                    String branch = mActivity.getSharedPreferences(
                            Utility.PREFERENCE_NAME, Context.MODE_PRIVATE)
                            .getString(Utility.BRANCH, "");
                    System.out.println("====branch===: "+branch);
                    if (!branch.equals("")) {
                        branchIndex = getIndex(branch);   
                        System.out.println("=====positionbranch:    
         "+branchIndex);
                        branchSpinner.setSelection(branchIndex);
                    }
                }
            }

        });
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
    return true;
}
private int getIndex(String branch) {
    for (int i = 0; i < branchList.size(); i++) {
        if (branchList.get(i).equalsIgnoreCase(branch)) {
            System.out.println("======i: "+i);
            return i;

        }
    }
    return -1;
}

LogCat值:

12-17 13:50:51.502: I/System.out(13229): ====branch===: B1
12-17 13:50:51.502: I/System.out(13229): ====branchlist===: [Select, B1, B2,   
B3,B4]
12-17 13:50:51.502: I/System.out(13229): ======i: 1
12-17 13:50:51.502: I/System.out(13229): =====positionbranch: 1

返回时的 LogCat 值:

12-17 13:53:10.932: I/System.out(14895): ====branch===: B1
12-17 13:53:10.932: I/System.out(14895): ====branchlist===: [Select, B1, B2
, B3, B4]
12-17 13:53:10.932: I/System.out(14895): =====positionbranch: -1

共有1个答案

伏德义
2023-03-14

您可能需要更换:

int branchIndex = pinnerAdapter.getPosition(branch);
branchSpinner.setSelection(branchIndex);

有了这个:

branchSpinner.setSelection(list.indexOf(branch));
 类似资料:
  • 问题内容: Ember.js REST适配器期望JSON返回为: 但是我的API返回的数据 没有根元素 : 是否可以自定义REST适配器,使其接受我的JSON数据?现在,它显示“ 断言失败:您的服务器返回了一个带有键0的哈希,但是您没有映射 ” 更新: 根据下面的Sherwin Yu的答案,这是我想出的,到目前为止似乎仍然有效:https : //gist.github.com/richardka

  • ListPetientFragment。JAVA 错误是:2021-11-17 18:41:02.417 29997-29997/?E/rtphonemedicat:运行时设置的未知位_标志:0x8000 2021-11-17 18:41:03.628 29997-30029/com。尼戈特。smartphonemedicate E/GED:无法获取GED日志Buf,错误(0)2021-11-17

  • 本节将会引入一个全新的概念——适配器,这个名字很形象,和电源适配器的功能类似,从程序设计的角度出发,它可以将不同类型、不同结构的数据适配到一起。 在 Android 中,适配器是 UI 组件和数据之间的桥梁,它帮助我们将数据填充到 UI 组件当中,实现了一个典型的 MVC 模式。我们可以分别编写独立的 UI 样式和数据模型,至于数据如何与 UI 组件绑定都由 Adapter 帮我们完成,这样的好处

  • 问题内容: 所以我有一个自定义的listview。就像Instagram布局一样,每个列表项中都有1张图片和一堆按钮。所以这是问题所在: 我要实现共享按钮。为此,我尝试创建一个从适配器到活动的回调。但这似乎没有用。这是我到目前为止的内容(我裁剪了不相关的部分): 主要活动 列表适配器 错误日志: 问题答案: 您需要告诉适配器使用哪个OnShareClickedListener()实现。现在,在您的

  • 问题内容: 我在告诉Android 方向更改时不打电话时遇到了麻烦。我已添加到清单中,但仍在调用方向更改时添加。这是我的代码。 AndroidManifest.xml SearchMenuActivity.java 还有我的LogCat输出 有人知道我在做什么错吗?谢谢。 问题答案: 要尝试的几件事: 而不是 确保您没有在任何地方打电话。这将导致onConfigurationChange()无法触

  • 我朋友的Android Studio 2.3中有一个奇怪的问题。通常,如果我们转到“运行”,则可以看到“调试器”选项卡 我曾尝试重新安装到最新的Android Studio 2.3,重新安装SDK工具并重新引用SDK路径。我们的环境几乎相同。我可以调试,但他不能。 不知道Windows 10中的c:\ users { user-name } . androidstudio 2.3下是否存储了调试器