从微调器下拉项目更改片段?

时间:2016-06-25 11:54:51

标签: android android-fragments android-spinner android-fragmentactivity

我的活动有一个微调器和一个空容器,当从微调器中选择下拉项时,应该添加片段。

我的计划是尝试在内部进行切换构建“public void onItemSelected()”,其中每个案例代表一个来自微调器的下拉项,并将正确的片段设置到容器中,如下所示:

String itemSelectedFromSpinner = parent.getSelectedItem().toString();
switch (itemSelectedFromSpinner) {
            case "first item":  // First and second item put same fragment into container, but do other methods when used
            case "second item": // my code
        }

我的另一个教导就是把它放进去,如果像这样的建筑:

String itemSelectedFromSpinner = parent.getSelectedItem().toString();
    if (itemSelectedFromSpinner.equals("first item") || itemSelectedFromSpinner.equals("second item")){
    // my code }

由于我从未做过这样的事情,我相信你可以从我的问题中了解需要做什么,告诉我这样做的最佳做法是什么。

我是通过将String itemSelectedFromSpinner放入开关构造中来做到的吗?此外,如果用户选择了一个项目并加载了第一个片段,那么当选择其他项目时,第一个片段会消失并自动将第二个片段放入容器中吗? (对不起,如果这听起来对你很愚蠢,我对片段缺乏经验)

1 个答案:

答案 0 :(得分:0)

  1. 不要直接在代码中使用"first item"之类的字符串 - 将它们移动到字符串资源。
  2. 对于像微调器这样的组件,请使用Adapter。适配器的概念在Android中广泛使用,因此熟悉它是一个好主意。而且它还允许您通过一些整数的符号ID来比较您的数据,而不是通过字符串(这是无效的,缓慢的和丑陋的 - 比较各处的字符串表示很难)。
  3. 要动态替换或添加片段,请使用FragmentManager。请参阅简单的replace() / add() / commit()代码