【问题标题】:How to set error border to RelativeLayout? EditText box is placed in RelativeLayout [duplicate]如何将错误边框设置为RelativeLayout? EditText框放置在RelativeLayout中[重复]
【发布时间】:2018-01-09 17:50:21
【问题描述】:

上图显示只有编辑文本框的边框变为红色。当单击按钮时编辑文本字段为空时,我需要相对布局将其边框更改为红色。屏幕上的“白色”部分是RelativeLayout

主要活动代码:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate ( savedInstanceState );
        setContentView ( R.layout.phone );

        final EditText number = (EditText) findViewById ( R.id.mobilenumber );
        final String msisdn=number.getText().toString();
        Button button = (Button) findViewById(R.id.login_button);

        button.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(TextUtils.isEmpty(msisdn)) {
                    number.setBackgroundResource(R.drawable.edit_text_error_background);

                    number.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.like_selected, 0);
                    return;
                }
            }
        });


    }

【问题讨论】:

  • 发布一些你尝试过的代码。
  • 所以你需要自己编写方法观察编辑文本字段为空并将布局设置为红色。不要忘记else情况:P
  • 为相对布局设置颜色的代码在哪里?
  • 发生错误时需要更换背景
  • @sree 这就是我要问的。编辑框为空时单击按钮时更改相对布局边框颜色的代码是什么

标签: android android-edittext border android-relativelayout


【解决方案1】:

你改变你的editText背景颜色如下。

button.setOnClickListener( new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(TextUtils.isEmpty(msisdn)) {
                number.setBackground(R.drawable.your_error_background);


            }
            else{
                 number.setBackground(R.drawable.your_normal_bakground);
            }
        }
    });

使用setBackground() 方法而不是setBackgroundResource() 方法,因为它默认接受可绘制资源

我希望它对你有用。谢谢你

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    相关资源
    最近更新 更多