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

Android Studio Using Multiple Buttons with Switch

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

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

代码以activity_home.xml开头。一旦按下“菜单”按钮,屏幕就会成功切换到activity_toggle_menu.xml。从那里,我看到三个按钮,但其中 none 个可以使用。我包含了我的代码,希望有人能指出我正确的方向!

我在我能找到的每个示例中使用的开关都使用 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;

    }

   }
}

更改views/designs - 您需要实施活动或片段。

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

请检查此 link for understanding about Activity in Android and check this link 以在 Java

中构建您的第一个 Android 应用程序

由于 ToggleMenu 在您的代码中是 activity,因此您可以调用 intent 来更改 activity 而不是在单击 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()