如何使用Java从另一个活动中启用按钮?

如何使用Java从另一个活动中启用按钮?,java,android,Java,Android,activity\u levels.xml <Button android:id="@+id/level2" android:layout_width="100dp" android:layout_height="105dp" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_alignParentRight="tr

activity\u levels.xml

<Button
    android:id="@+id/level2"
    android:layout_width="100dp"
    android:layout_height="105dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginTop="200dp"
    android:layout_marginEnd="130dp"
    android:layout_marginRight="198dp"
    android:background="#FF0000"
    android:text="2"
    android:textSize="40sp"
    android:enabled="false" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:text="Next Level"
    android:textAllCaps="false"
    android:onClick="nextLevel"/>
活动级别一个结果xml

<Button
    android:id="@+id/level2"
    android:layout_width="100dp"
    android:layout_height="105dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginTop="200dp"
    android:layout_marginEnd="130dp"
    android:layout_marginRight="198dp"
    android:background="#FF0000"
    android:text="2"
    android:textSize="40sp"
    android:enabled="false" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:text="Next Level"
    android:textAllCaps="false"
    android:onClick="nextLevel"/>

我想从
activity\u levels.xml
文件中启用level 2按钮。我希望通过在
LevelOneResult.Java
中使用Java来启用它。正如您在上面所看到的,我已经添加了一个注释部分,用于放置代码。

在LevelOneResult.java中创建一个
接口
,如下所示,我在代码注释中解释:

public class LevelOneResult extends AppCompatActivity {

    OnCompleteListener mListener;
    //create an listener
    public  interface OnCompleteListener {
         void onComplete(boolean enableOrNot);
    }
    //attach the listener in the activity
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        try {
            this.mListener = (OnCompleteListener)activity;
        }
        catch (final ClassCastException e) {
            throw new ClassCastException(activity.toString() + " must implement OnCompleteListener");
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_level_one_result);


    }

    public void nextLevel(View view) {
        startActivity(new Intent(getApplicationContext(), Levels.class));
        // enable the button here

        here trigger the listener
        //true means enable
         mListener.onComplete(true);
    }
}
Levels.java
中,您需要实现
接口
,从接口
onComplete()
获取数据,然后完成您的工作

public class Levels extends AppCompatActivity implements LevelOneResult.OnCompleteListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_levels);
    }

    public void onComplete(boolean enableOrNot ) {
        // after the action in LevelOne
        // the boolean trigger here..

        //here the boolean is true,which u set in levelOneJava
        if(enableOrNot){
            //then do your stuff here
        }
    }
}

用户观察者模式或界面在此处输入这两个活动代码,请详细描述。我已经添加了这两个活动代码,并进行了更详细的解释。将一个包传递给该意图,在该意图中,您设置要启用该按钮(我实际上会说,“您将第二个活动置于应启用该按钮的状态。”,更准确地说),并从第二个活动接收捆绑包。我认为这个答案解决了你的问题