How do I call one method of an activity from another class










-1















This is a part of my activity class,



public class StatusActivity extends AppCompatActivity {


private boolean cFlag = false;

public boolean getFlag() return cFlag;

public void setFlag(boolean cFlag)
this.cFlag = cFlag;


protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,
android.R.id.text1, messages);
ListView listView = findViewById(android.R.id.list);
listView.setAdapter(adapter);
adapters.add(adapter);


Button btn = findViewById(R.id.btnCustomerCheckIn);
btn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
setFlag(true);
cFlag = getFlag();


Intent intent = new Intent(StatusActivity.this, MainActivity.class);
Toast.makeText(StatusActivity.this, "customer checked in",
Toast.LENGTH_LONG).show();
startActivity(intent);

);





this is a part of another class named as position



public class Position 
StatusActivity statusactivity = new StatusActivity();
public boolean ccflag = statusactivity.getFlag();
statusactivity.setFlag(false);




when i am calling



statusactivity.setFlag(false);


it is showing an error. couldn't recognize that what is the error that i am getting. but



statusactivity.getFlag(); 


is working properly. any help is appreciated










share|improve this question
























  • What is the error you are seeing?

    – Janwilx72
    Nov 14 '18 at 7:22






  • 3





    Never instantiate an Activity yourself. This is the task of the framework, which will make all necessary initializations and call the activitie's life cycle methods. If you need an instance of the activity in your class pass it as a parameter.

    – Henry
    Nov 14 '18 at 7:26












  • StatusActivity statusactivity = new StatusActivity(); is just plain wrong, instead of this, you should inject your Position object into that activity and have control over it.

    – Jay
    Nov 14 '18 at 7:27











  • We never create an instance of an activity by ourself. Its created by android framework work behind the scene. To call activitie's method from other class you need to pass reference of activity to that class

    – Umer Farooq
    Nov 14 '18 at 7:34











  • @Janwilx72 its showing cannot resolve symbol 'setFlag'

    – Shafeeq Mohammed
    Nov 14 '18 at 8:10















-1















This is a part of my activity class,



public class StatusActivity extends AppCompatActivity {


private boolean cFlag = false;

public boolean getFlag() return cFlag;

public void setFlag(boolean cFlag)
this.cFlag = cFlag;


protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,
android.R.id.text1, messages);
ListView listView = findViewById(android.R.id.list);
listView.setAdapter(adapter);
adapters.add(adapter);


Button btn = findViewById(R.id.btnCustomerCheckIn);
btn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
setFlag(true);
cFlag = getFlag();


Intent intent = new Intent(StatusActivity.this, MainActivity.class);
Toast.makeText(StatusActivity.this, "customer checked in",
Toast.LENGTH_LONG).show();
startActivity(intent);

);





this is a part of another class named as position



public class Position 
StatusActivity statusactivity = new StatusActivity();
public boolean ccflag = statusactivity.getFlag();
statusactivity.setFlag(false);




when i am calling



statusactivity.setFlag(false);


it is showing an error. couldn't recognize that what is the error that i am getting. but



statusactivity.getFlag(); 


is working properly. any help is appreciated










share|improve this question
























  • What is the error you are seeing?

    – Janwilx72
    Nov 14 '18 at 7:22






  • 3





    Never instantiate an Activity yourself. This is the task of the framework, which will make all necessary initializations and call the activitie's life cycle methods. If you need an instance of the activity in your class pass it as a parameter.

    – Henry
    Nov 14 '18 at 7:26












  • StatusActivity statusactivity = new StatusActivity(); is just plain wrong, instead of this, you should inject your Position object into that activity and have control over it.

    – Jay
    Nov 14 '18 at 7:27











  • We never create an instance of an activity by ourself. Its created by android framework work behind the scene. To call activitie's method from other class you need to pass reference of activity to that class

    – Umer Farooq
    Nov 14 '18 at 7:34











  • @Janwilx72 its showing cannot resolve symbol 'setFlag'

    – Shafeeq Mohammed
    Nov 14 '18 at 8:10













-1












-1








-1


1






This is a part of my activity class,



public class StatusActivity extends AppCompatActivity {


private boolean cFlag = false;

public boolean getFlag() return cFlag;

public void setFlag(boolean cFlag)
this.cFlag = cFlag;


protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,
android.R.id.text1, messages);
ListView listView = findViewById(android.R.id.list);
listView.setAdapter(adapter);
adapters.add(adapter);


Button btn = findViewById(R.id.btnCustomerCheckIn);
btn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
setFlag(true);
cFlag = getFlag();


Intent intent = new Intent(StatusActivity.this, MainActivity.class);
Toast.makeText(StatusActivity.this, "customer checked in",
Toast.LENGTH_LONG).show();
startActivity(intent);

);





this is a part of another class named as position



public class Position 
StatusActivity statusactivity = new StatusActivity();
public boolean ccflag = statusactivity.getFlag();
statusactivity.setFlag(false);




when i am calling



statusactivity.setFlag(false);


it is showing an error. couldn't recognize that what is the error that i am getting. but



statusactivity.getFlag(); 


is working properly. any help is appreciated










share|improve this question
















This is a part of my activity class,



public class StatusActivity extends AppCompatActivity {


private boolean cFlag = false;

public boolean getFlag() return cFlag;

public void setFlag(boolean cFlag)
this.cFlag = cFlag;


protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,
android.R.id.text1, messages);
ListView listView = findViewById(android.R.id.list);
listView.setAdapter(adapter);
adapters.add(adapter);


Button btn = findViewById(R.id.btnCustomerCheckIn);
btn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
setFlag(true);
cFlag = getFlag();


Intent intent = new Intent(StatusActivity.this, MainActivity.class);
Toast.makeText(StatusActivity.this, "customer checked in",
Toast.LENGTH_LONG).show();
startActivity(intent);

);





this is a part of another class named as position



public class Position 
StatusActivity statusactivity = new StatusActivity();
public boolean ccflag = statusactivity.getFlag();
statusactivity.setFlag(false);




when i am calling



statusactivity.setFlag(false);


it is showing an error. couldn't recognize that what is the error that i am getting. but



statusactivity.getFlag(); 


is working properly. any help is appreciated







java android






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 14 '18 at 7:56









Utkarsh Srivastava

718




718










asked Nov 14 '18 at 7:19









Shafeeq MohammedShafeeq Mohammed

107




107












  • What is the error you are seeing?

    – Janwilx72
    Nov 14 '18 at 7:22






  • 3





    Never instantiate an Activity yourself. This is the task of the framework, which will make all necessary initializations and call the activitie's life cycle methods. If you need an instance of the activity in your class pass it as a parameter.

    – Henry
    Nov 14 '18 at 7:26












  • StatusActivity statusactivity = new StatusActivity(); is just plain wrong, instead of this, you should inject your Position object into that activity and have control over it.

    – Jay
    Nov 14 '18 at 7:27











  • We never create an instance of an activity by ourself. Its created by android framework work behind the scene. To call activitie's method from other class you need to pass reference of activity to that class

    – Umer Farooq
    Nov 14 '18 at 7:34











  • @Janwilx72 its showing cannot resolve symbol 'setFlag'

    – Shafeeq Mohammed
    Nov 14 '18 at 8:10

















  • What is the error you are seeing?

    – Janwilx72
    Nov 14 '18 at 7:22






  • 3





    Never instantiate an Activity yourself. This is the task of the framework, which will make all necessary initializations and call the activitie's life cycle methods. If you need an instance of the activity in your class pass it as a parameter.

    – Henry
    Nov 14 '18 at 7:26












  • StatusActivity statusactivity = new StatusActivity(); is just plain wrong, instead of this, you should inject your Position object into that activity and have control over it.

    – Jay
    Nov 14 '18 at 7:27











  • We never create an instance of an activity by ourself. Its created by android framework work behind the scene. To call activitie's method from other class you need to pass reference of activity to that class

    – Umer Farooq
    Nov 14 '18 at 7:34











  • @Janwilx72 its showing cannot resolve symbol 'setFlag'

    – Shafeeq Mohammed
    Nov 14 '18 at 8:10
















What is the error you are seeing?

– Janwilx72
Nov 14 '18 at 7:22





What is the error you are seeing?

– Janwilx72
Nov 14 '18 at 7:22




3




3





Never instantiate an Activity yourself. This is the task of the framework, which will make all necessary initializations and call the activitie's life cycle methods. If you need an instance of the activity in your class pass it as a parameter.

– Henry
Nov 14 '18 at 7:26






Never instantiate an Activity yourself. This is the task of the framework, which will make all necessary initializations and call the activitie's life cycle methods. If you need an instance of the activity in your class pass it as a parameter.

– Henry
Nov 14 '18 at 7:26














StatusActivity statusactivity = new StatusActivity(); is just plain wrong, instead of this, you should inject your Position object into that activity and have control over it.

– Jay
Nov 14 '18 at 7:27





StatusActivity statusactivity = new StatusActivity(); is just plain wrong, instead of this, you should inject your Position object into that activity and have control over it.

– Jay
Nov 14 '18 at 7:27













We never create an instance of an activity by ourself. Its created by android framework work behind the scene. To call activitie's method from other class you need to pass reference of activity to that class

– Umer Farooq
Nov 14 '18 at 7:34





We never create an instance of an activity by ourself. Its created by android framework work behind the scene. To call activitie's method from other class you need to pass reference of activity to that class

– Umer Farooq
Nov 14 '18 at 7:34













@Janwilx72 its showing cannot resolve symbol 'setFlag'

– Shafeeq Mohammed
Nov 14 '18 at 8:10





@Janwilx72 its showing cannot resolve symbol 'setFlag'

– Shafeeq Mohammed
Nov 14 '18 at 8:10












2 Answers
2






active

oldest

votes


















0














StatusActivity statusactivity = new StatusActivity();


This is totally wrong because you are trying to create a new Instance of activity.
If you want to use "setFlag" method from other activity then you must create a static method inside StatusActivity so you can access using directly StatusActivity.



And If you want to call from any fragment of this activity then please get an instance of this activity by the cast from "getActivity()" to StatusActivity and use that instance for call "setFlag" or "getFlag" method.



You can implement like below in Activity.



private static boolean cFlag = false;

public static boolean getFlag()
return cFlag;


public static void setFlag(boolean cFlag)
StatusActivity.cFlag = cFlag;



and call from position class like below



public class Position 
public boolean ccflag = StatusActivity.getFlag();
StatusActivity.setFlag(false);






share|improve this answer

























  • could you explain the right way with an example,it could have a greet help. thank you

    – Shafeeq Mohammed
    Nov 14 '18 at 8:31











  • Check my answer I was edited with an example.

    – gunavant patel
    Nov 14 '18 at 9:29











  • StatusActivity.setFlag(false); is showing error(cannot resolve symbol 'setFlag')

    – Shafeeq Mohammed
    Nov 14 '18 at 10:49











  • it worked :) thank you

    – Shafeeq Mohammed
    Nov 14 '18 at 11:16


















0














you can not instantiate Activity class. if you want to call a method from activity, fist you should check that activity already running and not destroyed then by having the context of your class you just cast it like below then use its method



StatusActivity statusactivity= (StatusActivity )context; 
statusactivity.setFlag(false);





share|improve this answer


















  • 1





    public boolean ccflag = statusactivity.getFlag(); this code is working for me

    – Shafeeq Mohammed
    Nov 14 '18 at 8:29










Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53294953%2fhow-do-i-call-one-method-of-an-activity-from-another-class%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














StatusActivity statusactivity = new StatusActivity();


This is totally wrong because you are trying to create a new Instance of activity.
If you want to use "setFlag" method from other activity then you must create a static method inside StatusActivity so you can access using directly StatusActivity.



And If you want to call from any fragment of this activity then please get an instance of this activity by the cast from "getActivity()" to StatusActivity and use that instance for call "setFlag" or "getFlag" method.



You can implement like below in Activity.



private static boolean cFlag = false;

public static boolean getFlag()
return cFlag;


public static void setFlag(boolean cFlag)
StatusActivity.cFlag = cFlag;



and call from position class like below



public class Position 
public boolean ccflag = StatusActivity.getFlag();
StatusActivity.setFlag(false);






share|improve this answer

























  • could you explain the right way with an example,it could have a greet help. thank you

    – Shafeeq Mohammed
    Nov 14 '18 at 8:31











  • Check my answer I was edited with an example.

    – gunavant patel
    Nov 14 '18 at 9:29











  • StatusActivity.setFlag(false); is showing error(cannot resolve symbol 'setFlag')

    – Shafeeq Mohammed
    Nov 14 '18 at 10:49











  • it worked :) thank you

    – Shafeeq Mohammed
    Nov 14 '18 at 11:16















0














StatusActivity statusactivity = new StatusActivity();


This is totally wrong because you are trying to create a new Instance of activity.
If you want to use "setFlag" method from other activity then you must create a static method inside StatusActivity so you can access using directly StatusActivity.



And If you want to call from any fragment of this activity then please get an instance of this activity by the cast from "getActivity()" to StatusActivity and use that instance for call "setFlag" or "getFlag" method.



You can implement like below in Activity.



private static boolean cFlag = false;

public static boolean getFlag()
return cFlag;


public static void setFlag(boolean cFlag)
StatusActivity.cFlag = cFlag;



and call from position class like below



public class Position 
public boolean ccflag = StatusActivity.getFlag();
StatusActivity.setFlag(false);






share|improve this answer

























  • could you explain the right way with an example,it could have a greet help. thank you

    – Shafeeq Mohammed
    Nov 14 '18 at 8:31











  • Check my answer I was edited with an example.

    – gunavant patel
    Nov 14 '18 at 9:29











  • StatusActivity.setFlag(false); is showing error(cannot resolve symbol 'setFlag')

    – Shafeeq Mohammed
    Nov 14 '18 at 10:49











  • it worked :) thank you

    – Shafeeq Mohammed
    Nov 14 '18 at 11:16













0












0








0







StatusActivity statusactivity = new StatusActivity();


This is totally wrong because you are trying to create a new Instance of activity.
If you want to use "setFlag" method from other activity then you must create a static method inside StatusActivity so you can access using directly StatusActivity.



And If you want to call from any fragment of this activity then please get an instance of this activity by the cast from "getActivity()" to StatusActivity and use that instance for call "setFlag" or "getFlag" method.



You can implement like below in Activity.



private static boolean cFlag = false;

public static boolean getFlag()
return cFlag;


public static void setFlag(boolean cFlag)
StatusActivity.cFlag = cFlag;



and call from position class like below



public class Position 
public boolean ccflag = StatusActivity.getFlag();
StatusActivity.setFlag(false);






share|improve this answer















StatusActivity statusactivity = new StatusActivity();


This is totally wrong because you are trying to create a new Instance of activity.
If you want to use "setFlag" method from other activity then you must create a static method inside StatusActivity so you can access using directly StatusActivity.



And If you want to call from any fragment of this activity then please get an instance of this activity by the cast from "getActivity()" to StatusActivity and use that instance for call "setFlag" or "getFlag" method.



You can implement like below in Activity.



private static boolean cFlag = false;

public static boolean getFlag()
return cFlag;


public static void setFlag(boolean cFlag)
StatusActivity.cFlag = cFlag;



and call from position class like below



public class Position 
public boolean ccflag = StatusActivity.getFlag();
StatusActivity.setFlag(false);







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 14 '18 at 9:28

























answered Nov 14 '18 at 7:32









gunavant patelgunavant patel

17618




17618












  • could you explain the right way with an example,it could have a greet help. thank you

    – Shafeeq Mohammed
    Nov 14 '18 at 8:31











  • Check my answer I was edited with an example.

    – gunavant patel
    Nov 14 '18 at 9:29











  • StatusActivity.setFlag(false); is showing error(cannot resolve symbol 'setFlag')

    – Shafeeq Mohammed
    Nov 14 '18 at 10:49











  • it worked :) thank you

    – Shafeeq Mohammed
    Nov 14 '18 at 11:16

















  • could you explain the right way with an example,it could have a greet help. thank you

    – Shafeeq Mohammed
    Nov 14 '18 at 8:31











  • Check my answer I was edited with an example.

    – gunavant patel
    Nov 14 '18 at 9:29











  • StatusActivity.setFlag(false); is showing error(cannot resolve symbol 'setFlag')

    – Shafeeq Mohammed
    Nov 14 '18 at 10:49











  • it worked :) thank you

    – Shafeeq Mohammed
    Nov 14 '18 at 11:16
















could you explain the right way with an example,it could have a greet help. thank you

– Shafeeq Mohammed
Nov 14 '18 at 8:31





could you explain the right way with an example,it could have a greet help. thank you

– Shafeeq Mohammed
Nov 14 '18 at 8:31













Check my answer I was edited with an example.

– gunavant patel
Nov 14 '18 at 9:29





Check my answer I was edited with an example.

– gunavant patel
Nov 14 '18 at 9:29













StatusActivity.setFlag(false); is showing error(cannot resolve symbol 'setFlag')

– Shafeeq Mohammed
Nov 14 '18 at 10:49





StatusActivity.setFlag(false); is showing error(cannot resolve symbol 'setFlag')

– Shafeeq Mohammed
Nov 14 '18 at 10:49













it worked :) thank you

– Shafeeq Mohammed
Nov 14 '18 at 11:16





it worked :) thank you

– Shafeeq Mohammed
Nov 14 '18 at 11:16













0














you can not instantiate Activity class. if you want to call a method from activity, fist you should check that activity already running and not destroyed then by having the context of your class you just cast it like below then use its method



StatusActivity statusactivity= (StatusActivity )context; 
statusactivity.setFlag(false);





share|improve this answer


















  • 1





    public boolean ccflag = statusactivity.getFlag(); this code is working for me

    – Shafeeq Mohammed
    Nov 14 '18 at 8:29















0














you can not instantiate Activity class. if you want to call a method from activity, fist you should check that activity already running and not destroyed then by having the context of your class you just cast it like below then use its method



StatusActivity statusactivity= (StatusActivity )context; 
statusactivity.setFlag(false);





share|improve this answer


















  • 1





    public boolean ccflag = statusactivity.getFlag(); this code is working for me

    – Shafeeq Mohammed
    Nov 14 '18 at 8:29













0












0








0







you can not instantiate Activity class. if you want to call a method from activity, fist you should check that activity already running and not destroyed then by having the context of your class you just cast it like below then use its method



StatusActivity statusactivity= (StatusActivity )context; 
statusactivity.setFlag(false);





share|improve this answer













you can not instantiate Activity class. if you want to call a method from activity, fist you should check that activity already running and not destroyed then by having the context of your class you just cast it like below then use its method



StatusActivity statusactivity= (StatusActivity )context; 
statusactivity.setFlag(false);






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 14 '18 at 7:36









AmirAmir

159214




159214







  • 1





    public boolean ccflag = statusactivity.getFlag(); this code is working for me

    – Shafeeq Mohammed
    Nov 14 '18 at 8:29












  • 1





    public boolean ccflag = statusactivity.getFlag(); this code is working for me

    – Shafeeq Mohammed
    Nov 14 '18 at 8:29







1




1





public boolean ccflag = statusactivity.getFlag(); this code is working for me

– Shafeeq Mohammed
Nov 14 '18 at 8:29





public boolean ccflag = statusactivity.getFlag(); this code is working for me

– Shafeeq Mohammed
Nov 14 '18 at 8:29

















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53294953%2fhow-do-i-call-one-method-of-an-activity-from-another-class%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

Barbados

How to read a connectionString WITH PROVIDER in .NET Core?

Node.js Script on GitHub Pages or Amazon S3