1

私は Android アノテーションを使用しており、@AfterViews でアノテーションを付けたメソッドは 3 回呼び出されます。生成されたクラスをデバッグしたところ、これら 3 つのメソッドが呼び出されていることがわかりましたが、その理由はわかりません。

@Override
public void setContentView(int layoutResID) {
    super.setContentView(layoutResID);
    afterSetContentView_();
}

@Override
public void setContentView(View view, LayoutParams params) {
    super.setContentView(view, params);
    afterSetContentView_();
}

@Override
public void setContentView(View view) {
    super.setContentView(view);
    afterSetContentView_();
}

-- 編集 1 -- レイアウトを設定する唯一の場所はアクティビティ宣言です。

@EActivity(R.layout.real_estate_customer_leads_list)
public class RealEstateCustomerLeadsListActivity extends
    SlidingFragmentActivity implements FilterResponseHandler {

}
4

1 に答える 1

0

これはおそらく、一方のスーパーがもう一方のスーパーを呼び出しているためです。このようなもの:

 // super.setContentView(layoutResID); code is:
 View v = LayoutInflater.from(getContext()).inflate(layoutResId);
 setContentView(v);

// then super.setContentView(view); code is:
setContentView(view, null);

// then super.setContentView(view, params);
this one now actually do real work. Hence, 3 calls!
于 2013-02-27T16:12:10.790 に答える