Search code examples
androidandroid-context

How to access Activity UI from my class?


I have an activity which creates an object instance of my class:

file MyActivity.java:
public class MyActivity extends Activity {
    TextView myView = (TextView)findViewById(R.id.myView);
    ...
    Points myPoints new Points();
    ...
}
--------------------------------------------------------------

file Points.java:
private class Points {
    ...
    HOW TO USE myView HERE ???
    ...
}
--------------------------------------------------------------

How do I use the UI objects in my class (which does not extend an Activity)? Should I pass some context to my Points class? How do I do, exactly?


Solution

  • see you post, i've edited it , to fix the problem

    hope it helps :=)

    here is the Edit :

    file MyActivity.java:
        public class MyActivity extends Activity {
        TextView myView ;
        protected void onCreate(android.os.Bundle savedInstanceState) {
            myView = (TextView)findViewById(R.id.myView);
                Points myPoints = new Points(this);
                myPoints.displayMsg("Hello World !!!");
        }  
        }
    
    --------------------------------------------------------------
    
    file Points.java:
    private class Points {
        protected MyActivity context;
        //add a constructor with the Context of your activity
        public Points(MyActivity _context){
            context = _context;
        }
    
        public void displayMsg( final String msg){
            context.runOnUiThread(new Runnable() {
    
                @Override
                public void run() {
                    context.myView.setText(msg);    
                }
            });
        }
    }