2015-08-26 7 views
0

В Android у меня есть класс A, который расширяет класс B, который расширяет ActionBarActivity. Класс A устанавливает вид содержимого. По какой-то причине я не могу получить доступ к элементам представления из класса B. Как получить доступ к элементам представления (например, TextView)? Когда я пытаюсь использовать findViewById в классе B, он всегда равен нулю.Как правильно использовать findViewById, если класс A расширяет класс B extends Activity

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

Вы наследуете вещи назад. Класс 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. 
+0

Здравствуйте, г-н Плуг. Моя цель - заставить класс А действовать как MainActivity. класс B будет NavigationDrawer (позволяет раздвинуть панель перед классом A). Я хотел бы иметь возможность расширить несколько классов от NavigationDrawer и позволить NavigationDrawer получить доступ к определенным элементам пользовательского интерфейса в этом классе. Возможно ли это? – codeshark

+0

Не знаю. Все ящики для навигации, которые я когда-либо использовал, были фрагментами. – MrPlow