风言枫语  

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

比如一个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();
        }
    }

}


 

 

posted on   风言枫语  阅读(222)  评论(0编辑  收藏  举报
努力加载评论中...
 
点击右上角即可分享
微信分享提示