有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在类a扩展类B扩展活动时正确使用findViewById

在Android中,我有一个类a扩展了类B,类B扩展了ActionBarActivity。类设置内容视图。由于某些原因,我无法从类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) 个答案

  1. # 1 楼答案

    你在向后继承东西。B类从不设置ContentView

    我想这就是你想要的:

    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.