gpt4 book ai didi

java - 使用主要 Activity 中的按钮更改第二个 Activity 中的颜色=崩溃

转载 作者:行者123 更新时间:2023-12-01 18:41:58 26 4
gpt4 key购买 nike

我是编码的新手,我已经在这个(看似简单)的任务上工作了几个小时,尝试过在论坛上发帖,但都无济于事。

我在主活动上有按钮,并且想要基于按钮意图中的颜色分配来更改第二个活动(LampActivity)的背景颜色。

以下代码会导致启动时崩溃-请帮助! -= \

主要活动:

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出现意外的X86 CPU变体
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:类型= 1400审核(0.0:61):avc:拒绝{写入} 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:关闭VM
2020-01-26 09:02:18.891 17378-17378 / com.example.lightbox E / AndroidRuntime:FATAL EXCEPTION: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)

最佳答案

步骤1 seecond_activity.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"
android:id="@+id/second_layout">

</androidx.constraintlayout.widget.ConstraintLayout>


第2步


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:

Bundle extras = new Bundle();
extras.putInt("bgColor", R.colo.yellow);
pass.putExtras(extras);
startActivity(intent);
break;
}
}
}



步骤3 SecondActivity.java

public class LampActivity extends AppCompatActivity {

private ConstraintLayout mRoot;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lamp);

mRoot = findViewById(R.id.second_layout);
Bundle data = getIntent().getExtras();
int color = data.getIntExtra("bgColor", -1);
mRoot.setBackgroundColor(color);

}
}

关于java - 使用主要 Activity 中的按钮更改第二个 Activity 中的颜色=崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59915767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com