gpt4 book ai didi

java - 如何从另一个 Activity 设置 float 操作菜单的可见性

转载 作者:行者123 更新时间:2023-12-02 12:17:20 25 4
gpt4 key购买 nike

我创建了一个 float 操作菜单,其中包含 Activity 中的 float 操作按钮,我所需要的只是想在另一个 Activity 中显示相同的屏幕,但没有主 Activity 中的 float 操作菜单我尝试在新 Activity 中 setVisibily(VIEW.Invisible) 它向我显示空对象引用错误我该如何解决这个问题

这是包含 float 操作菜单的 mainActivity

public class MenuActivity extends AppCompatActivity {
FloatingActionButton SplitCheck, HoldItem, VoidItem, ChangeNoOfCovers, Payment;
public static FloatingActionMenu mainFM;
@Override
protected void onCreate(Bundle savedInstanceState) {
mainFM = (FloatingActionMenu) findViewById(R.id.mainFAB);
SplitCheck = (FloatingActionButton) findViewById(R.id.splitCheck);
HoldItem = (FloatingActionButton) findViewById(R.id.holdItem);
VoidItem = (FloatingActionButton) findViewById(R.id.voidItem);
ChangeNoOfCovers = (FloatingActionButton) findViewById(R.id.changeNoCover);
Payment = (FloatingActionButton) findViewById(R.id.paymentID);

mainFM.setClosedOnTouchOutside(true);
...........................
.................
}
}

这是我的第二个 Activity

package abtech.waiteriano.com.waitrer;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import com.github.clans.fab.FloatingActionMenu;

public class TakeAwayActivity extends AppCompatActivity {

private FloatingActionButton fabNew;
private android.support.v7.widget.Toolbar toolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_take_away);
fabNew = (FloatingActionButton) findViewById(R.id.newOrderTa);
final FloatingActionMenu mainFM = (FloatingActionMenu) findViewById(R.id.mainFAB);
final boolean showButton = getIntent().getBooleanExtra("HIDE_FAB" , false);
mainFM.setVisibility(showButton ? View.VISIBLE : View.INVISIBLE);

// MenuActivity.mainFM.setVisibility(View.INVISIBLE);


fabNew.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Intent i = new Intent(TakeAwayActivity.this, MenuActivity.class);
i.putExtra("HIDE_FAB", true);
startActivity(i);

}
});
}
}

最佳答案

您不能将静态变量用于此类用途。

在您的具体情况下,您尝试在执行 onCreate 之前访问 MenuActivity.mainFM,因此它必须为 null。

最好的方法是在您的 startActivity Intent 中添加一个额外的内容,然后在您的 Activity 的 onCreate 方法中添加这个额外的内容并显示或不显示您的按钮。

final Intent intent = new Intent(TakeAwayActivity.this, MenuActivity.class);
intent.putExtra(MenuActivity.EXTRA_SHOW_BUTTON_KEY, true);
startActivity(intent);

然后在您的 Activity 中:

public class MenuActivity extends AppCompatActivity {

public static final String EXTRA_SHOW_BUTTON_KEY = "EXTRA_SHOW_BUTTON_KEY";

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

final FloatingActionMenu mainFM = (FloatingActionMenu) findViewById(R.id.mainFAB);
final boolean showButton = getIntent().getBooleanExtra(EXTRA_SHOW_BUTTON_KEY , false);
mainFM.setVisibility(showButton ? View.VISIBLE : View.INVISIBLE);

// ...
}
}

关于java - 如何从另一个 Activity 设置 float 操作菜单的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46061918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com