Android Problems with a TextView -
this sounds easy @ beginning driving me insane.
so downloaded latest android sdk , eclipse , there somthing new.... :
when iam creating activity , layout generates me 2 layout files somthing like: main_laout.xml , fragment_main.xml
however eclipse opend fragment file , made gui there. when iam starting application buttons , textviews there. press button , second activity starts.
and here problem: second activity first 1 (the 2 layout xml files here called status)
when iam trying change textview there nullpointer exception. can plz me iam getting crazy.
my code far:
statusactivity:
public class statusactivity extends actionbaractivity{ private textview version,dbstatus,dbrows; private button done,refresh; networktask task; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_status); if (savedinstancestate == null) { getsupportfragmentmanager().begintransaction() .add(r.id.container, new placeholderfragment()).commit(); } version=(textview) findviewbyid(r.id.versionsoutputtextstatus); dbstatus=(textview) this.findviewbyid(r.id.dbstatusoutputtextstatus); dbrows=(textview) this.findviewbyid(r.id.dbrowsoutputtextstatus); done=(button) this.findviewbyid(r.id.beendenbuttonstatus); refresh=(button) this.findviewbyid(r.id.refreshbuttonstatus); version.settext("test"); }
and xml files: activity_status.xml:
<framelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="de.project.zigbeecontrol.statusactivity" tools:ignore="mergerootframe" />
fragment_status.xml:
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/eisblumen" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="de.project.zigbeecontrol.statusactivity$placeholderfragment" > <textview android:id="@+id/welcometextstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparenttop="true" android:layout_centerhorizontal="true" android:layout_margintop="43dp" android:text="@string/status" android:textappearance="?android:attr/textappearancelarge" /> <textview android:id="@+id/versionsoutputtextstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbaseline="@+id/versiontextstatus" android:layout_alignbottom="@+id/versiontextstatus" android:layout_marginleft="24dp" android:layout_torightof="@+id/versiontextstatus" android:text="@string/empty" android:textappearance="?android:attr/textappearancemedium" /> <textview android:id="@+id/dbstatusoutputtextstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbottom="@+id/dbstatustextstatus" android:layout_alignleft="@+id/versionsoutputtextstatus" android:text="@string/empty" android:textappearance="?android:attr/textappearancemedium" /> <button android:id="@+id/beendenbuttonstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/welcometextstatus" android:layout_alignparentbottom="true" android:layout_alignright="@+id/welcometextstatus" android:background="@drawable/button_trans" android:text="@string/endestatus" android:onclick="onclickstatus" /> <textview android:id="@+id/dbrowstextstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/beendenbuttonstatus" android:layout_alignright="@+id/dbstatustextstatus" android:layout_marginbottom="26dp" android:text="@string/dbrows" android:textappearance="?android:attr/textappearancemedium" /> <textview android:id="@+id/dbstatustextstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centervertical="true" android:layout_toleftof="@+id/beendenbuttonstatus" android:text="@string/datenbankstatus" android:textappearance="?android:attr/textappearancemedium" /> <textview android:id="@+id/versiontextstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignright="@+id/dbstatustextstatus" android:layout_below="@+id/welcometextstatus" android:layout_margintop="56dp" android:text="@string/version" android:textappearance="?android:attr/textappearancemedium" /> <textview android:id="@+id/dbrowsoutputtextstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbaseline="@+id/dbrowstextstatus" android:layout_alignbottom="@+id/dbrowstextstatus" android:layout_alignleft="@+id/dbstatusoutputtextstatus" android:text="@string/empty" android:textappearance="?android:attr/textappearancemedium" /> <button android:id="@+id/refreshbuttonstatus" style="?android:attr/buttonstylesmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbottom="@+id/welcometextstatus" android:layout_marginbottom="17dp" android:layout_marginleft="31dp" android:layout_torightof="@+id/welcometextstatus" android:text="@string/refresh" android:onclick="onclickstatus" /> </relativelayout>
even when working post parts of "main" programm can see how worked there : mainactivity:
public class mainactivity extends actionbaractivity{ //buttons private button beendenbutton; private button statusbutton; private button restartbutton; private button auswertungbutton; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); if (savedinstancestate == null) { getsupportfragmentmanager().begintransaction() .add(r.id.container, new placeholderfragment()).commit(); } /*zuweißung der buttons */ beendenbutton=(button) this.findviewbyid(r.id.endbuttonmain); statusbutton=(button) this.findviewbyid(r.id.statusbuttonmain); restartbutton=(button) this.findviewbyid(r.id.restartbuttonmain); auswertungbutton=(button)this.findviewbyid(r.id.auswertungbuttonmain); /*fertig mit initzialisieren warten auf eingabe*/ } private void statusmethod() { try{ intent intent = new intent(this, statusactivity.class); startactivity(intent); this.finish(); }catch(exception e){errormessage();} } //.... uninterresting stuff here public void onclick(view v) { switch (v.getid()) { /*auswahl gedrückt wurde und aufruf der entsprechenden methode */ case r.id.endbuttonmain: endactivity(); break; case r.id.statusbuttonmain: statusmethod();break; case r.id.restartbuttonmain: restartmethod();break; case r.id.auswertungbuttonmain: sensormethod(); break; default: break; } }
}
and 2 xmls layout:
activity_main:
<framelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="de.project.zigbeecontrol.mainactivity" tools:ignore="mergerootframe" />
and last not least fragment_main:
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/eisblumen" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="de.project.zigbeecontrol.mainactivity$placeholderfragment" > <button android:id="@+id/endbuttonmain" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_torightof="@+id/welcometextmain" android:background="@drawable/button_trans" android:text="@string/beenden" android:onclick="onclick" /> <textview android:id="@+id/welcometextmain" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/endbuttonmain" android:layout_centerhorizontal="true" android:text="@string/welcome" android:textappearance="?android:attr/textappearancelarge" /> <button android:id="@+id/statusbuttonmain" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/welcometextmain" android:layout_centerhorizontal="true" android:layout_margintop="39dp" android:background="@drawable/button_trans" android:text="@string/status" android:onclick="onclick" /> <button android:id="@+id/restartbuttonmain" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/statusbuttonmain" android:layout_below="@+id/statusbuttonmain" android:layout_margintop="19dp" android:background="@drawable/button_trans" android:text="@string/neustart" android:onclick="onclick" /> <button android:id="@+id/auswertungbuttonmain" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/restartbuttonmain" android:layout_below="@+id/restartbuttonmain" android:layout_margintop="33dp" android:background="@drawable/button_trans" android:text="@string/sensoren" android:onclick="onclick" /> </relativelayout>
so plz! why npe when trying:
version.settext("test");
regards
try this..
change this..
setcontentview(r.layout.activity_status);
to
setcontentview(r.layout.fragment_status);
because textview
s , button
s in fragment_status.xml
setcontentview
should refer fragment_status.xml
and remove
if (savedinstancestate == null) { getsupportfragmentmanager().begintransaction() .add(r.id.container, new placeholderfragment()).commit(); }
ans same in mainactivity.java
change this..
setcontentview(r.layout.activity_main);
to
setcontentview(r.layout.fragment_main);
and remove
if (savedinstancestate == null) { getsupportfragmentmanager().begintransaction() .add(r.id.container, new placeholderfragment()).commit(); }
Comments
Post a Comment