我有两个名为“主要活动”和“第二个活动”的活动。主要活动具有事件处理程序。发生事件时,我需要在第二个活动中禁用按钮。
主要活动
public void myEventListener(int eventID){
switch (eventID) {
case : 0
// disable button of second activity here
break;
}
}
答案 0 :(得分:0)
在“第一个活动”中,创建布尔型静态变量。
示例:
FirstActivity
创建一个布尔型静态全局变量
public static Boolean clicked = false;
onFirstActivity(如果发生事件)。
发生了事件=> clicked = true;
,否则为假
SecondActivity
在第二个活动中,从FirstActivity获取静态布尔值
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (FirstActivity.clicked){
//Do Nothing
}else{
//Perform action
}
}
});
答案 1 :(得分:0)
禁用按钮非常简单。请按照以下步骤解决问题。
然后按如下所示检查布尔值
private boolean isClicked = false;
if(isClicked){
button.disabled(true);
} else {
button.disabled(false);
}
请在申请时遇到任何问题。
答案 2 :(得分:0)
首先参考第二个活动,然后将按钮的可见性设置为“消失”或“不可见”。
bool repeat = true;
while (repeat)
{
//...
repeat = userWantsToContinue(repeat); // note this is NOT a declaration,
// there is only one variable called repeat
}
assert(repeat == false); // this assertion would invariably succeed, since
// repeat has to be false to exit the loop.
答案 3 :(得分:0)
您可以选择LocalBroadCastManager。
在MainActivity中要触发方法的任何地方
LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent("event-occured"));
在SecondActivity中注册并接收LocalBroadcastManager。
public class SecondActivity extends AppCompatActivity {
private BroadcastReceiver mainActivityReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
mainActivityReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// do whatever you want to do
Log.d("TAG", "broadcast received");
}
};
LocalBroadcastManager.getInstance(this).registerReceiver(mainActivityReceiver, new IntentFilter("main-activity-initialized"));
}
@Override
protected void onDestroy() {
super.onDestroy();
LocalBroadcastManager.getInstance(this).unregisterReceiver(mainActivityReceiver);
}
请不要忘记在SecondActivity的onDestroy方法中注销侦听器。取自here。
答案 4 :(得分:0)
这很简单。
private static void SetupIdentityServer(IdentityServerOptions identityServerOptions)
{
identityServerOptions.UserInteraction.LoginUrl = "/Identity/Account/Login";
}
更改SharedPreference
中的数据(可能是布尔值)MainAcitivity
中的SharedPreference.OnSharedPreferenceChangeListener
收听特定的数据并在运行时更改按钮状态。MainActivity.java
SecondActivity
SecondActivity
public class MainActivity extends AppCompatActivity {
SharedPreferences.Editor editor;
public void myEventListener(int eventID){
switch (eventID) {
case 0:
editor = getSharedPreferences("pref",MODE_PRIVATE).edit();
editor.putBoolean("event",true);
break;
}
}
}