using findviewbyid in a class that does NOT extend Activity in android using findviewbyid in a class that does NOT extend Activity in android android android

using findviewbyid in a class that does NOT extend Activity in android


you should pass the instance of your Activity to your Second Class on the constructor like this :

In your Activity Instanciate your Class like this :

MyClass instance = new MyClass(this);

And in your second Class , the constructor will be like this :

public class MyClass {public Activity activity; //.... other attributes public MyClass( Activity _activity){   this.activity = _activity;//other initializations...}}

and then when you want to use the findViewById() method , you can do like this :

EditText txt = (EditText)this.activity.findViewById(R.id.txt);


if you want to call any function that belongs to Activity then only thing you need to have is context of the Activity.

eg.

class A extends Activity {    Context ctx;    void onCreate(Bundle b)        ctx = this;        B bob = new B(ctx);    }}

Here is class B.

class B {    B (Activity a) {        a.anyFunctionOfActivity();    }}


findViewById is non-static public method of the Activity Class ,so it only be available for a Activity object. Therefore, import android.view.View and android.app.Activity won't make it available. To make it available, you could pass around a Actvity object - usually a this point in your activity. However, notice that you should always update your View in the UI thread.