I've written a function to change the text of a TextView. It's in the class of the activity which contains the TextView. However, this function doesn't work when it's called from another class.
The function looks like this:
public class MainActivity extends AppCompatActivity {
public void changeTest() {
TextView test = (TextView) findViewById(R.id.textViewTest);
guessedLetters.setText("test");
}
}
If I call this function from my MainActivity, it works perfectly fine:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gameplay);
changeTest();
}
}
But if I call it from a class that extends MainActivity, I get a java.lang.NullPointerException at android.app.Activity.findViewById(Activity.java:1884).
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gameplay);
MyClass myClass = new MyClass();
myClass.myFunction();
}
}
public class MyClass extends MainActivity {
public void myFunction() {
MainActivity mainActivity = new MainActivity();
mainActivity.changeTest();
}
}
How could I fix this?