【问题标题】:Spinner & Edittext微调器和编辑文本
【发布时间】:2012-12-24 09:55:29
【问题描述】:

我正在尝试制作一个简单的应用程序,但我遇到了问题。我有一个由 4 个字符串组成的微调器 - 日期、日期、时间、位置。在微调器下,有 7 个从星期一到太阳的日期复选框,日期的编辑文本,时间的编辑文本和位置的编辑文本(纬度和经度)。如果我在微调器中选择“天”,如何使日期、时间和位置字段不可编辑?如果我在微调器中选择另一个字符串,反之亦然?意味着如果我选择时间,只能使用时间的edittext,另外3个变得不可编辑。 som1 请帮助我,tq..

【问题讨论】:

    标签: android if-statement android-edittext spinner


    【解决方案1】:

    您可以使用

    禁用/启用 EditText
    EditText.setEnabled(false);
    

    或者您也可以通过将 setKeyListener null 设置为来禁用 EditText:

    EditText.setKeyListener(null);
    

    例如:

    private static final String[] weekitems={"day","date","time","location"};
    
        daySpinner.setOnItemSelectedListener(
            new OnItemSelectedListener() {
                @Override
                public void onItemSelected(
                    AdapterView<?> parent, View view, int pos, long id
                ) {
    
                      String strsel=weekitems[pos];
                          if(strsel.equalsIgnoreCase("day")){
                             //disable EditText here
                          }else{
                              //enable EditText here
                          } 
                }
    
                @Override
                public void onNothingSelected(AdapterView<?> arg0) {}
    
            }
        );
    

    【讨论】:

    • 如果我确实喜欢你的建议,它将变得不可编辑。当我不在微调器中选择它时,我希望它变得不可编辑。
    • @user1858863 :那么您将需要根据用户选择使用 setOnItemSelectedListener 来禁用/启用 EditText
    • tqvm,它有帮助,但我不知道为什么 cetrain edittext 仍然可以编辑,即使我使用“EditText.setEnabled(false);”
    • @user1858863 :好吧,您的相关代码因为无法输入 EditText 是您设置了 EditText.setEnabled(false)
    【解决方案2】:

    您可以使用以下方法禁用 EditText:

    EditText.setEnabled(false);
    

    你需要实现OnItemSelectedListener,然后在你的onItemSelected方法中你可以切换位置:

        public void onItemSelected(AdapterView<?> parent, View v, int position,
                    long id) {
                switch(position){
                            case 0:
                             enableAll();
                             EditText.setEnabled(false);
                            break;
    
                          // etc.
    }
            }
    

    【讨论】:

    • 它变得不可编辑,但我只希望它在我不在微调器中选择它时变得不可编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    相关资源
    最近更新 更多