如果类A扩展类B,如何正确使用findViewById扩展了Activity

时间:2015-08-26 22:02:54

标签: java android android-layout android-activity

在Android中,我有一个A类,它扩展了B类,扩展了ActionBarActivity。 A类设置内容视图。出于某种原因,我无法访问类B中的视图元素。如何访问视图元素(例如:TextView)?当我尝试在B类中使用findViewById时,它总是为空。

public class A extends B {
    @Override
    protected void onCreate(Bundle savedInstanceState)  {
        setContentView(R.layout.activity_main);
        super.onCreate(savedInstanceState);
    }
}

public class B extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TextView myTextView = (TextView) findViewById(R.id.myTextView);
        // myTextView is null
    }
}

1 个答案:

答案 0 :(得分:1)

你向后继承事物。 B类没有setContentView。

我认为这就是你想要的:

public class A extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState)  {
    setContentView(R.layout.activity_main);
    super.onCreate(savedInstanceState);
    }
}

public class B extends A {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // A called setContentView(), so now we can find views by id.
        TextView myTextView = (TextView) findViewById(R.id.myTextView);
        // myTextView now is not null.