android - onClick 与 Relativelayout FC

标签 android android-layout android-intent nullpointerexception android-actionbar

我想为包含 ImageView 和 TextView 的相对布局提供并单击选项,当它尝试打开它时,它会在模拟器上提供 FC,即使我只将 onClick 提供给 ImageView,即使我做了 children 的可点击错误

enter image description here

<RelativeLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:weightSum="1"
    android:background="@android:color/holo_red_light"
    android:onClick="OpenHBDapp">

    <ImageView
        android:layout_width="88dp"
        android:layout_height="110dp"
        android:id="@+id/imageView2"
        android:layout_weight="0.18"
        android:src="@drawable/happy_birthday_cake"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:paddingLeft="16dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/happy_birthday_apk"
        android:id="@+id/textView5"
        android:textSize="20sp"
        android:textStyle="bold"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/imageView2"
        android:layout_toEndOf="@+id/imageView2"
        android:paddingLeft="16dp" />
</RelativeLayout>

这是类

package courses.omy.dasser.androidcousres;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class C1Lesson1 extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.c1_lesson1);
    }

public void OpenHBDapp(View view) {
    Intent intent = new Intent(this, HappyBirthday_app.class);
    startActivity(intent);
    }

}

list

<activity
     android:name=".HappyBirthday_app"
     android:label="Happy Birthday">
</activity>

日志

02-02 13:02:50.418 23653-23653/courses.omy.dasser.androidcousres E/AndroidRuntime: FATAL EXCEPTION: main
   Process: courses.omy.dasser.androidcousres, PID: 23653
   java.lang.RuntimeException: Unable to start activity ComponentInfo{courses.omy.dasser.androidcousres/courses.omy.dasser.androidcousres.HappyBirthday_app}: java.lang.NullPointerException
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
       at android.app.ActivityThread.access$800(ActivityThread.java:135)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5001)
       at java.lang.reflect.Method.invokeNative(Native Method)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
       at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.NullPointerException
       at courses.omy.dasser.androidcousres.HappyBirthday_app.onCreate(HappyBirthday_app.java:17)
       at android.app.Activity.performCreate(Activity.java:5231)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
       at android.app.ActivityThread.access$800(ActivityThread.java:135) 
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
       at android.os.Handler.dispatchMessage(Handler.java:102) 
       at android.os.Looper.loop(Looper.java:136) 
       at android.app.ActivityThread.main(ActivityThread.java:5001) 
       at java.lang.reflect.Method.invokeNative(Native Method) 
       at java.lang.reflect.Method.invoke(Method.java:515) 
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
       at dalvik.system.NativeStart.main(Native Method) 

生日快乐课

package courses.omy.dasser.androidcousres;

import android.app.ActionBar;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
public class HappyBirthday_app extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.happy_birthday_app);
        ActionBar actionBar = null;
        actionBar.setTitle("Happy Birthday");
    }
}

最佳答案

改变

ActionBar actionBar = null;

ActionBar actionBar = getSupportActionBar();

可以改成

android.support.v7.app.ActionBar actionBar = getSupportActionBar();

这将解决 FC 谢谢

关于android - onClick 与 Relativelayout FC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35160572/

相关文章:

java - AndEngine如何让 Sprite 在调用jump方法时不跳转

android - 具有锚定顶部和底部的 RelativeLayout?

android - 移动/调整 EditText 大小时,windowSoftInputMode adjustPan 不起作用

android - 具有嵌套 ViewGroup 的 ViewGroup

android - onClick 按钮监听器声明它从未使用过

android - BroadcastReceivers 在监听 BOOT_COMPLETED 时接收到哪个上下文?

android - Unity3D 网络摄像头自动对焦回调?

android - NoClassDefFoundError FirebaseOptions,安卓?

java - 如何在Java类中封装一个startActivityForResult并在调用该方法的Activity上获取onActivityResult

java - android Gradle同步错误(匹配版本)