当前位置: 首页 > 面试题库 >

在主要活动中按钮不可见

施慈
2023-03-14
问题内容

我在主要活动中创建了三个按钮。我为按钮一使用了以下代码

`btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn.setVisibility(GONE);
btn1.setVisibility(GONE);
btn2.setVisibility(GONE);
FragmentManager fm = getSupportFragmentManager();
TestFragment fragment = new TestFragment();
fm.beginTransaction().add(R.id.fragment_container,fragment).addToBackStack(null.commit();`

问题是当我按下后退按钮而不是在主要活动中不可见的按钮时。


问题答案:

如果您按下返回按钮,则会返回活动状态,但是您已经将按钮的可见性设置为“消失”,这就是为什么您看不到这些按钮的原因。您必须处理后退按钮,并将按钮的可见性再次设置为“可见”。

public class MainActivity extends AppCompatActivity {

    Button btn, btn1, btn2;

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

        btn = findViewById(R.id.btn);
        btn1 = findViewById(R.id.btn1);
        btn2 = findViewById(R.id.btn2);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btn.setVisibility(GONE);
                btn1.setVisibility(GONE);
                btn2.setVisibility(GONE);
                FragmentManager fm = getSupportFragmentManager();
                TestFragment fragment = new TestFragment();
                fm.beginTransaction().add(R.id.fragment_container, fragment).addToBackStack(null).commit();
            }
        });
    }
    //Handle your Back Button with onKeyDown method.
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        //Check for if Back Button is pressed. If pressed do below:
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            onBackPressed(); //Return your activity back.
            btn.setVisibility(View.VISIBLE);  //Set your btn's visibility as Visible.
            btn1.setVisibility(View.VISIBLE); //Set your btn1's visibility as Visible.
            btn2.setVisibility(View.VISIBLE); //Set your btn2's visibility as Visible.
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}


 类似资料:
  • 我已经创建了一个类,它扩展了。在该类中,当我按下一个按钮时,我想更改一个按钮的背景,该按钮被放置在主活动中。 我试图创建一个内部类来访问Main Active对象,但我得到的是这个错误: 尝试在空对象引用上调用虚拟方法android.content.pm.Application ationInfoandroid.content.Context.getApplication ationInfo()

  • 我的代码中有两个基本类:Airport和Flight(出发和到达)。机场由抵港飞行物清单和离港飞行物清单组成。在我的主要活动中,我持有一个airport对象列表,并在列表视图中表示它们。轻触列表视图对象,我启动了一个新的活动,用于显示该airport对象的所有到达航班(ActivityArrivalFlights),其中我将airport对象作为字段保存。在本练习中,有一个将到达航班添加到同一对象

  • 这是我运行应用程序时的清单文件,上面写着“主活动未在AndroidManifest.xml中声明” 我尝试重建,无效缓存/重启,添加 我昨天做了一个apk,直到那时它工作正常,但今天当我打开它时,它显示了这个错误。 以下是主要活动。JAVA logcat 2019-03-14 17:02:33.4925363-5363/com。基瓦尔。致命异常:AndroadCame。基瓦尔。拉格班达尔,PID:

  • 我有以下问题:当我从一个活动返回到另一个活动时,我需要打开菜单的某些元素。例如: 现在,当我在我的活动中单击“向上”时,菜单的第一个元素总是打开的(跑步者被拉到的地方)。我需要打开这样的元素,它是在打开新活动之前打开的。例如,我在Articles菜单元素中选择了一篇文章,在单击new activity之后,我想再次打开Articles元素。我试图通过点击后退按钮来实现这一点: 但没用怎么了?

  • 我用这个教程来实现facebook登录等。 Facebook登录 我在这里添加了新的片段来显示朋友列表。现在,当我在新添加的片段上按下后退按钮时,它会把我带到SPLASH片段,我想要动作栏上同样的后退按钮行为。这意味着当我在我的新片段上时,它会在动作栏上显示一个后退按钮。按下后退按钮会把我带回SPLASH屏幕。

  • 我试图用这段代码来显示我的个人档案活动: 当我点击Profile菜单项时,我可以看到我的ProfileActivity,但我的ActionBar上没有任何back按钮来返回我以前的活动。 那么,我如何显示一些后退按钮?我的代码是否正确以显示菜单中的活动?