Android Studio 使用带开关的多个按钮

Posted

技术标签:

【中文标题】Android Studio 使用带开关的多个按钮【英文标题】:Android Studio Using Multiple Buttons with Switch 【发布时间】:2021-09-23 01:21:23 【问题描述】:

好的,所以我想首先说我目前只有大约 16 个小时才能真正了解 Java。所以这似乎是一个非常简单的问题,但我在互联网上找不到任何答案。就像,任何地方。所以我来了!

我想做的是从我的 MainActivity 移动到一个菜单活动,然后可以跳转到不同的屏幕。我目前有四个activity_.xml 文件。 activity_home.xmlactivity_climbs.xmlactivity_certifications.xmlactivity_toggle_menu.xml

代码以activity_home.xml 开头。一旦按下“菜单”按钮,屏幕就会成功切换到activity_toggle_menu.xml。从那里,我看到三个按钮,但它们都不起作用。我将我的代码包含在内,希望有人能指出我正确的方向!

我在我能找到的每个示例中使用的开关都使用 Toast 来实现某些事情。我一辈子都找不到 setContentView 函数的任何东西。

MainActivity.java:

package com.example.certtracker;                                   
                                                                   
import androidx.appcompat.app.AppCompatActivity;                   
                                                                   
import android.os.Bundle;                                          
import android.view.View;                                          
import android.widget.Button;                                      
                                                                   
public class MainActivity extends AppCompatActivity               
                                                                   
    @Override                                                      
    protected void onCreate(Bundle savedInstanceState)            
        super.onCreate(savedInstanceState);                        
        setContentView(R.layout.activity_home);                    
                                                                   
                                                                   
       //Handles the Menu button on the home screen                
       Button menu = findViewById(R.id.menuButton);                
        menu.setOnClickListener(new View.OnClickListener()        
            @Override                                              
            public void onClick(View view)                        
                setContentView(R.layout.activity_toggle_menu);     
                                                                  
        );                                                        
                                                                   
                                                                  
                                                                  

ToggleMenu.java

public class ToggleMenu extends AppCompatActivity implements View.OnClickListener 

protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_toggle_menu);

    Button home = findViewById(R.id.homeScreen);
    Button cert = findViewById(R.id.cert_button);
    Button climb = findViewById(R.id.climb_button);

    home.setOnClickListener(this);
    cert.setOnClickListener(this);
    climb.setOnClickListener(this);



@Override
public void onClick(View view) 
    switch (view.getId()) 

        case R.id.homeScreen:

            setContentView(R.layout.activity_home);

            break;
        case R.id.climb_button:

            setContentView(R.layout.activity_climbs);

            break;
        case R.id.cert_button:

            setContentView(R.layout.activity_certifications);

            break;

    

   

【问题讨论】:

你做错了,看看如何实现导航抽屉 【参考方案1】:

对于更改视图/设计 - 您需要实现活动或片段。

您是使用 java 开发 Android 应用程序的新手,所以我的建议是您首先需要了解活动。

请查看link 了解 Android 中的 Activity,查看此 link 了解使用 Java 构建您的第一个 Android 应用

由于ToggleMenu 是您代码中的活动,因此您可以调用intent 来更改活动,而不是在单击menu 按钮时调用setContentView(),如下代码:

//Handles the Menu button on the home screen                
       Button menu = findViewById(R.id.menuButton);                
        menu.setOnClickListener(new View.OnClickListener()        
            @Override                                              
            public void onClick(View view)    
                startActivity(new Intent(MainActivity.this,ToggleMenu.class));     
                                                                  
        );  

对于设计activity_home.xmlactivity_climbs.xml、activity_certifications.xml,您需要创建和调用活动而不是调用setContentView()

【讨论】:

感谢您回答我的问题!您的建议帮助我解决了我的问题。

以上是关于Android Studio 使用带开关的多个按钮的主要内容,如果未能解决你的问题,请参考以下文章

Android studio实现多个按钮跳转多个页面

Android Studio:单击按钮时一一更新多个按钮的背景

如何有效地将属性更改为 Android Studio 中的多个视图/按钮?

按钮开关的基本介绍及选择方法

如何在 android studio 的弹出窗口内添加滚动的 listView?

Android Studio基础单选按钮RadioButton