有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用上下文作为参数/参数的java

我试图从ChangeClass更改菜单屏幕活动中按钮的文本

在这里查找其他答案,我发现了一个似乎可行的解决方案:

public class ChangeClass{
    protected MenuScreen context;

    public ChangeClass(MenuScreen context) {
        this.context = context;
    }

    public void setupMenu(){
        context.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                context.btnMenuScreen0.setText("test 1");
            }
        });
    }

我的问题是,我不确定在调用方法时如何将上下文作为参数引用

            ChangeClass changeClass = new ChangeClass (/*what goes here?*/);
            ChangeClass.setupMenu();

我最终想要访问的类是MenuScreen。班我如何在一个论点中将其称为上下文


共 (2) 个答案

  1. # 1 楼答案

    你可以用

    startActivityForResult(Intent, requestcode);
    

    调用ChangeActivity时,使用

    protected void onActivityResult(int requestCode, int resultCode, Intent data)  
    

    Here是一个关于如何做的示例

    你可以把你的按钮做成一个

    public static Button btn;
    

    然后在你的活动中,你可以

    MenuActitivy.btn.setText("Hi");
    

    希望有帮助

  2. # 2 楼答案

    ChangeClass中,只需将context作为Context类的实例

    public class ChangeClass{
        protected Context context;
    
        public ChangeClass(Context context) {
            this.context = context;
        }
        ...
    

    然后,当您创建新的ChangeClass时,按照这样做

    ChangeClass changeClass = new ChangeClass(MenuScreen.this);