xutils使用手冊(三)——IOC注入

這裏咱們以上一篇數據庫的例子來講明IOC注入如何使用 原始代碼部分java

private TextView query_list;
    private EditText et;

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

    private void initView() {
        query_list = (TextView) findViewById(R.id.query_list);
        et = (EditText) findViewById(R.id.edit);
    }

使用了動態注入的代碼數據庫

@ViewInject(R.id.query_list)
    private TextView query_list;
    @ViewInject(R.id.edit)
    private EditText et;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //initView();
        x.view().inject(this);
    }

//    private void initView() {
//        query_list = (TextView) findViewById(R.id.query_list);
//        et = (EditText) findViewById(R.id.edit);
//    }

xutils經過反射機制使得程序動態的使用findViewById方式爲屬性注入對象。ide

注意:在Android Studio若是使用了動態注入的話,就等於放棄了Android Studio提供的類型檢查功能。好比this

private void initView() {
        query_list = (TextView) findViewById(R.id.query_list);
        et = (EditText) findViewById(R.id.edit);
        //在這個方法中若是改成
        //et = (EditText) findViewById(R.id.query_list);
        //Android Studio提供的類型檢查機制會提示類型錯誤
        //可是使用了動態注入的方式的話,Android不會檢查類型是否正確
    }

因此到底要不要使用動態注入機制還要看具體的使用場景code

相關文章
相關標籤/搜索