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.xml
、activity_climbs.xml
、activity_certifications.xml
、activity_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.xml
、activity_climbs.xm
l、activity_certifications.xml
,您需要创建和调用活动而不是调用setContentView()
。
【讨论】:
感谢您回答我的问题!您的建议帮助我解决了我的问题。以上是关于Android Studio 使用带开关的多个按钮的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio:单击按钮时一一更新多个按钮的背景
如何有效地将属性更改为 Android Studio 中的多个视图/按钮?