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