当前位置: 首页 > 知识库问答 >
问题:

Android问题与点击()

濮翰学
2023-03-14

谢谢大家,我成功了!我不得不装上一个开关

我是编码新手,不明白为什么我的代码不起作用。我想将所有三个按钮组合在一种方法onClick()下,android工作室向我显示所有内容都是无误编写的,但是当我运行应用程序时,它会立即关闭。

package com.example.trafficlight;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
final Button LightSide = (Button) findViewById(R.id.LightSide);
final Button DarkSide = (Button) findViewById(R.id.DarkSide);
final Button Chubaka = (Button) findViewById(R.id.Chubaka);
private RelativeLayout mRelativeLayout;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mRelativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
    LightSide.setOnClickListener(this);
    DarkSide.setOnClickListener(this);
    Chubaka.setOnClickListener(this);


}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.LightSide:
            LightSide.setText("LightSide");
            mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
        case R.id.DarkSide:
            DarkSide.setText("DarkSide");
            mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.colorRed));
        case R.id.Chubaka:
            Chubaka.setText("Chubakka");
            mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.colorBrown));

    }

}
}

这是Bug Code 05-16 12:43:06.874 8223-8223/java.lang.reflect.Method.invokeE/AndroidRuntime: FATAL EXCEPTION: main Process:java.lang.reflect.Method.invoke, PID: 8223Method.java:372:尝试在ZygoteInit.java:903(com.android.internal.os.ZygoteInit.main)ZygoteInit.java:698(View.java:4780)android.view.View$PerformClick.run(View.java:19866)android.os.Handler.handleCallback(Handler.java:739)android.os.Handler.dispatchMessage(Handler.java:95)android.os.Looper.loop(Looper.java:135)android.app.ActivityThread.main(ActivityThread.java:5254)com.example.trafficlight(本机方法)com.example.trafficlight(java.lang.NullPointerException)android.widget.Button.setText$java.lang.CharSequence(com.example.trafficlight.MainActivity.onClick)MainActivity.java:36(android.view.View.performClick)

共有3个答案

章晋鹏
2023-03-14

这个问题在机制上有点复杂。我猜您已经在xml文件中链接了click事件,其中设置了一个按钮的click事件(onClick=“onClick”),因为onClick的参数是View,在这种情况下,该方法只适用于已链接的按钮,对于另一个按钮。

简短的回答是:给每个按钮小部件一个唯一的ID,并实现他们的OnClickListner;

糜俊彦
2023-03-14

试试这个< br >

启动OnCreate方法中的所有按钮。
在每个案例后插入block;

case R.id.LightSide:
            LightSide.setText("LightSide");
            mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
break;
        case R.id.DarkSide:
            DarkSide.setText("DarkSide");
            mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.colorRed));
break;
        case R.id.Chubaka:
            Chubaka.setText("Chubakka");
            mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.colorBrown));
break;
吉凯捷
2023-03-14

您需要将< code>findViewById调用移动到onCreate方法中:

Button mLightSide;
Button mDarkSide;
Button mChubaka;
private RelativeLayout mRelativeLayout;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mRelativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
    mLightSide = (Button) findViewById(R.id.LightSide);
    mDarkSide = (Button) findViewById(R.id.DarkSide);
    mChubaka = (Button) findViewById(R.id.Chubaka);
    mLightSide.setOnClickListener(this);
    mDarkSide.setOnClickListener(this);
    mChubaka.setOnClickListener(this);


}
 类似资料:
  • 我在Mac上安装了Android studio 3.3.2。由于错误,我删除了位于Library/Android/sdk上的sdk文件夹。现在我已经卸载了android studio并重新安装了它,但现在它不再下载android sdk,又指向了老路,后来它给我的错误就像没事做一样!Android SDK是最新的。SDK工具目录丢失 请帮我解决这个问题。

  • 生成apk时Android Studio中的aapt2错误这个问题在我将Android Studio更新到4.1.1时就开始了。我已经卸载并安装了它,我删除了它,我已经做了几个过程,我无法解决这个问题。 图像错误

  • 但是,当我使用命令行中的ndk-build命令编译它时,会出现以下错误: Android NDK:APP_PLATFORM未设置。默认为最小支持版本Android-16。[arm64-v8a]编译:com_celik_abdullah_imageprocessingpart_processors_NativeImageProcessor<=com_celik_Abdullah_ImageProce

  • 我对Android Studio和应用程序设计非常陌生,我在设计应用程序时面临一些问题。 我使用相对布局来设置页面上不同元素的位置,但它不起作用。我在下面列出了我的语法和结果供您参考。 但结果是: 设备: on Nexus 6P API 27 Oreo 我确实检查了与相对布局问题相关的其他问题,但我不认为它们像这个案例一样糟糕,所以我把它作为一个单独的问题来问。

  • 本文向大家介绍Android Listview点赞问题关于图片重复问题,包括了Android Listview点赞问题关于图片重复问题的使用技巧和注意事项,需要的朋友参考一下 《最近做一个小功能遇到这么一个问题,listview 与 baseadapter结合使用,关于点赞的的时候 图片重复问题,比如:我在第1个item 点赞然后 心型换成了红色,但是以后每隔几个item就会出现一个红色的心,响应

  • 我想在Android12中构建游戏。我知道我需要将 添加到包含标记中。 所以我已经将添加到我的Android手册中的活动标签中.xml。但是我构建的Android12设备仍然有错误。 安装失败,原因是:“无法使用命令cmd包安装提交1567366667提交安装会话1567366667。错误:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED:安装过程中解析失败Packa