• 安卓开发35:一些安卓设计经验总结


    代码中尽量使用抽象的控件对象

    比如一个Button对象,设置了一个OnClick的监听。我们可以在代码中转成View对象。这样以后就算这个Button改成ImageView或者TextView,都不需要更改代码

           //虽然是一个Button对象,但是我们转换成View对象
            //就算以后这个对象改成TextView等都不需要修改现在的代码
            View btn = (View) findViewById(R.id.button1);
            btnListener = new ButtonOnClickListener();
            btn.setOnClickListener(btnListener);

    能用资源文件表示的逻辑就尽量不要用代码来实现

    例如,我们经常会使用到的背景图片切换,我们可以使用xml来实现

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:drawable="@color/red"  android:state_enabled="true" android:state_focused="true"/>
    
    </selector>

    降低界面的复杂性

    尽量采用XML来表示界面的简单逻辑,避免使用大量的代码来实现


    在控件的观察者对象中避免放置直接的实现代码

    package com.example.test.com;
    
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.Window;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        private ButtonOnClickListener btnListener;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.main);
            //虽然是一个Button对象,但是我们转换成View对象
            //就算以后这个对象改成TextView等都不需要修改现在的代码
            View btn = (View) findViewById(R.id.button1);
            btnListener = new ButtonOnClickListener();
            //我们将OnClickListener的代码独立成内部类来实现,降低耦合,增强代码的可读性和可维护性
            btn.setOnClickListener(btnListener);
    
        }
    
        
        class ButtonOnClickListener implements OnClickListener {
    
            @Override
            public void onClick(View v) {
                Toast.makeText(getBaseContext(), "YES!", Toast.LENGTH_SHORT).show();
            }
        }
    
    }


  • 相关阅读:
    【leetcode】11. 盛最多水的容器
    【leetcode】8. 字符串转换整数 (atoi)
    【leetcode】6. Z 字形变换
    【leetcode】5. 最长回文子串
    【leetcode】LCP 19. 秋叶收藏集
    删除第一个节点问题
    问一个大学学习计算机这门专业的问题
    Struts文件上传页面上传后显示“连接已重置”
    2013-12-6 思杨没吃饱 饿醒了
    2013-12-7 snoopy乐园中的思杨
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3313122.html
Copyright © 2020-2023  润新知