【发布时间】:2020-01-26 05:16:00
【问题描述】:
我是编码新手,我已经在这个(看似简单的)任务上工作了几个小时,在论坛上尝试过发帖但无济于事。
我的主要活动上有按钮,并希望根据按钮意图中的颜色分配来更改第二个活动 (LampActivity) 的背景颜色。
以下代码导致启动时崩溃 - 请帮助! -=\
MainActivity:
package com.example.lightbox;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1=findViewById(R.id.button1);
Button button2=findViewById(R.id.button2);
Button button3=findViewById(R.id.button3);
Button button4=findViewById(R.id.button4);
Button button5=findViewById(R.id.button5);
Button button6=findViewById(R.id.button6);
Button button7=findViewById(R.id.button7);
Button button8=findViewById(R.id.button8);
Button button9=findViewById(R.id.button9);
Button button10=findViewById(R.id.button10);
Button button11=findViewById(R.id.button11);
ImageButton button12=findViewById(R.id.button12);
}
Intent intent = new Intent(MainActivity.this,LampActivity.class);
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
Toast.makeText(MainActivity.this, "Yellow Selected", Toast.LENGTH_SHORT).show();
intent.putExtra("bgColor", R.color.yellow);
startActivity(intent);
break;
}
}
}
第二次活动:
package com.example.lightbox;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import android.content.Intent;
public class LampActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lamp);
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/charcoal"
tools:context=".MainActivity">
<Button
android:id="@+id/button1"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_marginTop="84dp"
android:background="@color/yellow"
android:text="@string/yellow"
app:layout_constraintEnd_toStartOf="@+id/button2"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button2"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@color/orange"
android:text="@string/orange"
app:layout_constraintBottom_toBottomOf="@+id/button1"
app:layout_constraintEnd_toStartOf="@+id/button3"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button1"
app:layout_constraintTop_toTopOf="@+id/button1" />
<Button
android:id="@+id/button3"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@color/red"
android:text="@string/red"
app:layout_constraintBottom_toBottomOf="@+id/button2"
app:layout_constraintEnd_toStartOf="@+id/button4"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button2"
app:layout_constraintTop_toTopOf="@+id/button2" />
<Button
android:id="@+id/button4"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@color/pink"
android:text="@string/pink"
app:layout_constraintBottom_toBottomOf="@+id/button3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button3"
app:layout_constraintTop_toTopOf="@+id/button3" />
<Button
android:id="@+id/button5"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@color/purple"
android:text="@string/purple"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/button6"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button1"
app:layout_constraintVertical_bias="0.079" />
<Button
android:id="@+id/button6"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@color/blue"
android:text="@string/blue"
app:layout_constraintBottom_toBottomOf="@+id/button5"
app:layout_constraintEnd_toStartOf="@+id/button7"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button5"
app:layout_constraintTop_toTopOf="@+id/button5" />
<Button
android:id="@+id/button7"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@color/aqua"
android:text="@string/aqua"
app:layout_constraintBottom_toBottomOf="@+id/button6"
app:layout_constraintEnd_toStartOf="@+id/button8"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button6"
app:layout_constraintTop_toTopOf="@+id/button6" />
<Button
android:id="@+id/button8"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@color/lime"
android:text="@string/lime"
app:layout_constraintBottom_toBottomOf="@+id/button7"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button7"
app:layout_constraintTop_toTopOf="@+id/button7" />
<Button
android:id="@+id/button9"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@color/green"
android:text="@string/green"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/button10"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button5"
app:layout_constraintVertical_bias="0.107" />
<Button
android:id="@+id/button10"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@color/white"
android:text="@string/white"
app:layout_constraintBottom_toBottomOf="@+id/button9"
app:layout_constraintEnd_toStartOf="@+id/button11"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button9"
app:layout_constraintTop_toTopOf="@+id/button9" />
<Button
android:id="@+id/button11"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@color/white"
android:text="@string/sequence"
app:layout_constraintBottom_toBottomOf="@+id/button10"
app:layout_constraintEnd_toStartOf="@+id/button12"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button10"
app:layout_constraintTop_toTopOf="@+id/button10" />
<ImageButton
android:id="@+id/button12"
android:layout_width="90dp"
android:layout_height="90dp"
android:contentDescription="@string/rainbow_button"
android:src="@drawable/rainbow"
app:layout_constraintBottom_toBottomOf="@+id/button11"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button11"
app:layout_constraintTop_toTopOf="@+id/button11" />
<TextView
android:id="@+id/blurb"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginBottom="192dp"
android:width="40dp"
android:height="40dp"
android:gravity="center"
android:text="@string/blurb"
android:textAlignment="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button10"
app:layout_constraintVertical_bias="0.333" />
</androidx.constraintlayout.widget.ConstraintLayout>
activity_lamp.xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".LampActivity">
</androidx.constraintlayout.widget.ConstraintLayout>
Logcat 报告:
2020-01-26 09:02:18.546 17378-17378/? I/xample.lightbo: 未启用 -Xcheck:jni(已启用) 2020-01-26 09:02:18.580 17378-17378/? E/xample.lightbo:runtime_flags 中设置的未知位:0x8000 2020-01-26 09:02:18.581 17378-17378/? W/xample.lightbo:使用默认值的 X86 的意外 CPU 变体:x86 2020-01-26 09:02:18.800 17378-17411/com.example.lightbox D/libEGL:模拟器支持主机 GPU,qemu.gles 设置为 1。 2020-01-26 09:02:18.800 17378-17411/com.example.lightbox W/libc:无法将属性“qemu.gles”设置为“1”:连接失败; errno=13(权限被拒绝) 2020-01-26 09:02:18.794 17378-17378/com.example.lightbox W/RenderThread: type=1400 audit(0.0:61): avc: denied { write } for name="property_service" dev="tmpfs" ino=7422 scontext=u:r:untrusted_app:s0:c147,c256,c512,c768 tcontext=u:object_r:property_socket:s0 tclass=sock_file permissive=0 app=com.example.lightbox 2020-01-26 09:02:18.817 17378-17411/com.example.lightbox D/libEGL:加载 /vendor/lib/egl/libEGL_emulation.so 2020-01-26 09:02:18.819 17378-17411/com.example.lightbox D/libEGL:已加载 /vendor/lib/egl/libGLESv1_CM_emulation.so 2020-01-26 09:02:18.832 17378-17411/com.example.lightbox D/libEGL:加载 /vendor/lib/egl/libGLESv2_emulation.so 2020-01-26 09:02:18.888 17378-17378/com.example.lightbox D/AndroidRuntime:关闭虚拟机 2020-01-26 09:02:18.891 17378-17378/com.example.lightbox E/AndroidRuntime: 致命异常: main 进程:com.example.lightbox,PID:17378 java.lang.RuntimeException:无法实例化活动 ComponentInfo{com.example.lightbox/com.example.lightbox.MainActivity}:java.lang.NullPointerException:尝试调用虚拟方法'java.lang.String android.content.Context。空对象引用上的 getPackageName()' 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3194) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.String android.content.Context.getPackageName()” 在 android.content.ContextWrapper.getPackageName(ContextWrapper.java:145) 在 android.content.ComponentName.(ComponentName.java:131) 在 android.content.Intent.(Intent.java:6510) 在 com.example.lightbox.MainActivity.(MainActivity.java:32) 在 java.lang.Class.newInstance(本机方法) 在 android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95) 在 androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:41) 在 android.app.Instrumentation.newActivity(Instrumentation.java:1243) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3182) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
【问题讨论】:
-
您能否添加崩溃以了解确切含义并为您提供帮助。
标签: java android android-intent android-activity background-color