I have a very crazy bug. When I create a TextView array and initialize them in onCreate with my id from xml, nothing is changed. I create a simple function to change anything, but I get a nullpointer exception. I don't have any idea what I'm doing wrong with my code.
I will be very gratefull for any help.
XML:
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="10"
>
<LinearLayout
android:id="@+id/keys"
.....
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_below="@+id/keys"
android:weightSum="6" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:hint="A"
android:layout_weight="1"
android:id="@+id/data1" android:layout_alignTop="@+id/linearLayout"
android:layout_alignParentLeft="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:hint="A"
android:layout_weight="1"
android:id="@+id/data2"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:hint="A"
android:layout_weight="1"
android:id="@+id/data3"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:hint="A"
android:layout_weight="1"
android:id="@+id/data4"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:hint="A"
android:layout_weight="1"
android:id="@+id/data5"/>
</LinearLayout>
</RelativeLayout>
CODE:
public class XXX extends Activity {
private String login;
....
private TextView[] dates;
public void change(String x) {
if(dates[0].getEditableText().toString().compareTo("") == 0)
dates[0].setText(x);
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ABC);
dates = new TextView[5];
dates[0]=(TextView)findViewById(R.id.data1);
dates[1]= (TextView) findViewById(R.id.data2);
dates[2]=(TextView)findViewById(R.id.data3);
dates[3]=(TextView)findViewById(R.id.data4);
dates[4]=(TextView)findViewById(R.id.data5);
dates[0].setText("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
for (int i= 0; i < 5; i++){
dates[i].setText("LOL");
};
change("ROTFL");
}