setOnClickListener崩溃

时间:2014-04-26 10:10:38

标签: android crash clicklistener

我已经在stackoverflow上阅读了一些关于此的问题,但它并没有解决我的问题。

我正在遵循关于点击命令烘烤消息的指南..但它崩溃了(我想知道如果我只是复制指南)

代码是:

  @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageView red_view=(ImageView)findViewById(R.id.imageView3);

    red_view.setOnClickListener(new View.OnClickListener() {
        @Override
         public void onClick(View v) {
             Toast t=Toast.makeText(MainActivity.this,"ROSSO",Toast.LENGTH_SHORT);
                        t.show();
         }

         });
我错过了什么? :/

Logcat这是logcat(我不知道如何使它成为引用:/)

04-26 12:50:36.360:E / AndroidRuntime(928):致命异常:主04-26 12:50:36.360:E / AndroidRuntime(928):进程:com.example.firstapp,PID:928 04-26 12:50:36.360:E / AndroidRuntime(928):java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.firstapp / com.example.firstapp.MainActivity}:java.lang.NullPointerException 04- 26 12:50:36.360:E / AndroidRuntime(928):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)04-26 12:50:36.360:E / AndroidRuntime(928):在android.app。 ActivityThread.handleLaunchActivity(ActivityThread.java:2245)04-26 12:50:36.360:E / AndroidRuntime(928):at android.app.ActivityThread.access $ 800(ActivityThread.java:135)04-26 12:50:36.360 :E / AndroidRuntime(928):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)04-26 12:50:36.360:E / AndroidRuntime(928):在android.os.Handler.dispatchMessage( Handler.java:102)04-26 12:50:36.360:E / AndroidRuntime(928):在android.os.Looper.loop(Looper.java:136)0 4-26 12:50:36.360:E / AndroidRuntime(928):在android.app.ActivityThread.main(ActivityThread.java:5017)04-26 12:50:36.360:E / AndroidRuntime(928):at java。 lang.reflect.Method.invokeNative(Native Method)04-26 12:50:36.360:E / AndroidRuntime(928):at java.lang.reflect.Method.invoke(Method.java:515)04-26 12:50 :36.360:E / AndroidRuntime(928):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)04-26 12:50:36.360:E / AndroidRuntime(928):at com。 android.internal.os.ZygoteInit.main(ZygoteInit.java:595)04-26 12:50:36.360:E / AndroidRuntime(928):at dalvik.system.NativeStart.main(Native Method)04-26 12:50 :36.360:E / AndroidRuntime(928):引起:java.lang.NullPointerException 04-26 12:50:36.360:E / AndroidRuntime(928):at com.example.firstapp.MainActivity.onCreate(MainActivity.java:25 )04-26 12:50:36.360:E / AndroidRuntime(928):在android.app.Activity.performCreate(Activity.java:5231)04-26 12:50:36.360:E / AndroidRuntime(928):at android .app.Instrumentation.callAct ivityOnCreate(Instrumentation.java:1087)04-26 12:50:36.360:E / AndroidRuntime(928):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)04-26 12:50:36.360:E / AndroidRuntime(928):... 11更多04-26 12:50:38.660:I / Process(928):发送信号。 PID:928 SIG:9 04-26 12:50:42.540:D / AndroidRuntime(980):关闭VM 04-26 12:50:42.540:W / dalvikvm(980):threadid = 1:线程退出未捕获的异常(group = 0xb2a87ba8)04-26 12:50:42.550:E / AndroidRuntime(980):FATAL EXCEPTION:main 04-26 12:50:42.550:E / AndroidRuntime(980):进程:com.example.firstapp,PID :980 04-26 12:50:42.550:E / AndroidRuntime(980):java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.firstapp / com.example.firstapp.MainActivity}:java.lang.NullPointerException 04-26 12:50:42.550:E / AndroidRuntime(980):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)04-26 12:50:42.550:E / AndroidRuntime(980):在android。 app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)04-26 12:50:42.550:E / AndroidRuntime(980):at android.app.ActivityThread.access $ 800(ActivityThread.java:135)04-26 12:50 :42.550:E / AndroidRuntime(980):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)04-26 12:50:42.550:E / AndroidRuntime(980):在android.os.Handler.dispatchMessage(Handler.java:102)04-26 12:50:42.550:E / AndroidRuntime(980):在android.os.Looper .loop(Looper.java:136)04-26 12:50:42.550:E / AndroidRuntime(980):在android.app.ActivityThread.main(ActivityThread.java:5017)04-26 12:50:42.550:E / AndroidRuntime(980):at java.lang.reflect.Method.invokeNative(Native Method)04-26 12:50:42.550:E / AndroidRuntime(980):at java.lang.reflect.Method.invoke(Method.java :515)04-26 12:50:42.550:E / AndroidRuntime(980):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)04-26 12:50:42.550:E / AndroidRuntime(980):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)04-26 12:50:42.550:E / AndroidRuntime(980):at dalvik.system.NativeStart.main( Native方法)04-26 12:50:42.550:E / AndroidRuntime(980):引起:java.lang.NullPointerException 04-26 12:50:42.550:E / AndroidRuntime(980):at com.example.firstapp。 MainActivity.onCreate(MainActivity.java:25)04 -26 12:50:42.550:E / AndroidRuntime(980):在android.app.Activity.performCreate(Activity.java:5231)04-26 12:50:42.550:E / AndroidRuntime(980):at android.app .Instrumentation.callActivityOnCreate(Instrumentation.java:1087)04-26 12:50:42.550:E / AndroidRuntime(980):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)04-26 12:50:42.550 :E / AndroidRuntime(980):... 11更多04-26 12:50:44.760:I /处理(980):发送信号。 PID:980 SIG:9

(我试图点击对象并崩溃无论如何)这是我的布局文件http://it.tinypic.com/r/t0j5u1/8

3 个答案:

答案 0 :(得分:2)

您的imageView3采用片段布局,而不是activity_main布局。因此,您的活动onCreate()无法找到它。

将代码移至片段onCreateView()并在您刚膨胀的片段布局上调用findViewById(),例如。

View rootView = inflater.inflate(R.layout.your_fragment_layout);
ImageView red_view=(ImageView)rootView.findViewById(R.id.imageView3);
red_view.setOnClickListener(...);
return rootView;

答案 1 :(得分:0)

看到这个

public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        button = (Button) findViewById(R.id.buttonToast);

        button.setOnClickListener(new OnClickListener() {

              @Override
              public void onClick(View arg0) {

                 Toast.makeText(getApplicationContext(), 
                               "Button is clicked", Toast.LENGTH_LONG).show();

              }
        });
    }

答案 2 :(得分:0)

如果您在ImageView中设置了点击事件,请设置属性

android:clickable="true" 

在你的布局xml文件中。