如何更改各种微调器值的 EditText 字段

Posted

技术标签:

【中文标题】如何更改各种微调器值的 EditText 字段【英文标题】:How to change EditText field for various spinner values 【发布时间】:2016-07-31 02:40:40 【问题描述】:

我想为每个微调器选择更改 EditText 字段,我的 EditText 字段应该能够根据用户为单位字段选择的输入以英尺 + 英寸或厘米为单位进行输入,即如果用户选择公制,那么 EditText 应该改成 cm 格式,对于 FPS 系统 EditText 应该改成 Feet+inch 格式,如下图

我想我必须在微调器上使用 onClickListener,然后必须更改 EditText,但我不知道该怎么做。

【问题讨论】:

这里要加一个细节,我要在一个片段中实现这个,所以没有可用的上下文 【参考方案1】:

您应该将此界面与您的微调器一起使用。 “位置”对应于微调器数组项目的位置,如果你的微调器数组是 ["inch","cm"] 那么 case 0 对应于 "inch" 而 1 是 "cm"。 我希望它会有所帮助。

 //set spinner listener
    mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
             switch (position) 
        case 0:
           //TODO change EditText
            break;
        case 1:
            //TODO change EditText
            break;
        

        @Override
        public void onNothingSelected(AdapterView<?> parent) 

        
    );

【讨论】:

我尝试使用它但 setOnItemSelectedListener 不可用,我必须在片段中使用它。 找不到方法“setOnItemSelectedListener”? 是的,这种方法在 Fragments 中可用,所以我想我应该将整个界面从 Fragments 更改为 Activity,这样更容易,并且 Activity 布局可以使用更多方法。【参考方案2】:

感谢您抽出宝贵的时间,我得到了我想要的东西,我只是使用了一种解决方法, 我部署了三个字段 Ft、In 和 cms; Ft 表示英尺,In 表示英寸,cms 表示厘米,In spinner ft+in 和 cms 是两个选项,我将未选中选项的可见性设置为 VISIBLE.GONE。

【讨论】:

以上是关于如何更改各种微调器值的 EditText 字段的主要内容,如果未能解决你的问题,请参考以下文章

onAppear 不允许保存/更新选择器值的更改?

将微调器值右对齐而不是左对齐

每当我选择微调器值时如何隐藏标签?

在第二种方法中,第二个微调器值没有改变

如何将微调器值发送到下一页?

当我使用 if else 然后将值传递给设置 onClick 时,如何获取微调器值?