Nachdem ich einige verwandte Beiträge gelesen habe, weiß ich bereits, dass ich explizit zu setContenView aufrufen muss, bevor ich versuche, ein Element in einer Activity-View-Hierarchie nach ID zu finden. Ich habe eine Aktivität mit einer aufgeblasenen Ansicht erstellt und alles funktioniert gut. Das Problem ist, wenn ich versuche, eine andere Sicht auf diese Aktivität einzustellen, indem ich das nächste xml und den folgenden Code benutze:
%Vor%code:
%Vor%Ich habe andere leichte Variationen versucht:
%Vor%Und ich bekomme immer btn == null. Was mache ich falsch?
Thx
Sind Sie sicher, dass btn und bnt identisch sind?
Ich würde vorschlagen, Fragmente Google dev-Fragmente zu verwenden.
Wenn Sie dies jedoch so machen wollen, geben Sie Ihrem 'äußeren' Layout in main_activity.xml eine bestimmte ID, sagen wir rootView. Dann ruf dies an:
%Vor%Um Fragmente zu verwenden, erstellen Sie eine Klasse, die Fragment für jede Art von Ansicht Ihrer Aktivität implementiert. Ihre Main_activity wird nur ein FrameLayout enthalten (neben persistenten Headern, Tabs, was auch immer). Da die Schaltfläche eine Ansicht ist, die sich innerhalb des Fragments innerhalb der Hauptaktivität befindet, ruft findViewById (R.id.btn) an einer beliebigen Stelle in der Hauptaktivität die Schaltfläche auf, solange das Fragment geladen ist.
irgendwo in activity_main.xml:
%Vor%MainActivity.java
%Vor%DemoFragment.java
%Vor%Sie müssen das Ende der Ersetzung abwarten. Versuchen Sie Folgendes:
%Vor%Tags und Links android