按钮ONClickListener崩溃应用程序

时间:2014-10-21 00:14:08

标签: android onclicklistener

我正在尝试创建一个包含多个标签的应用程序,现在我只需要担心标签。我遇到的问题是,当我取消注释setOnClickListener按钮时,它会在尝试在AVD上运行时给出错误。 这是我的主要功能 `

@Override
public void onCreate(Bundle Bgilca) {
    Button blade;
    super.onCreate(Bgilca);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
 WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.main);
    launchMusic = MediaPlayer.create(main.this, R.raw.powerup);
    launchMusic.start();
    Thread launchTime = new Thread(){             
    public void run(){
        try{
            sleep(5000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finally{
            launchMusic.pause();


        }
    }
    };launchTime.start();




}
Button blade = (Button)findViewById(R.id.fantab);


}` 

当尝试在AVD中执行时,应用程序崩溃,发出消息“不幸的是app_name已停止”

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.bgilcag60"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="19" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".main"
        android:label="@string/app_name" 
        android:screenOrientation ="portrait"  

         >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".ventscreen"
        android:label="@string/app_name" 
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="com.example.bgilag60.ventscreen" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>


</application>

</manifest>

这是我的Layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:keepScreenOn="true"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp"
tools:context="com.example.bgilcag60.main" >

<Button
    android:id="@+id/scaunstg"
    android:layout_width="170dp"
    android:layout_height="70dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:background="@drawable/scaunstg"
    android:baselineAlignBottom="true"
    android:clickable="true" />

<Button
    android:id="@+id/scaundr"
    android:layout_width="170dp"
    android:layout_height="70dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:background="@drawable/scaundr"
    android:baselineAlignBottom="true"
    android:clickable="true" />

<Button
    android:id="@+id/home"
    android:layout_width="160dp"
    android:layout_height="80dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:background="@drawable/corrado_home"
    android:clickable="true" />

<Button
android:id="@+id/head"
android:layout_width="66dp"
android:layout_height="80dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/head_tab"
android:clickable="true" />

<Button
android:id="@+id/navi"
android:layout_width="66dp"
android:layout_height="70dp"
android:layout_alignParentTop="true"
android:layout_marginRight="95dp"
android:layout_toLeftOf="@+id/head"
android:background="@drawable/navi_tab"
android:clickable="true" />

<Button
android:id="@+id/fantab"
android:layout_width="66dp"
android:layout_height="66dp"
android:layout_alignParentTop="true"
android:layout_marginRight="95dp"
android:layout_toLeftOf="@+id/navi"
android:background="@drawable/fan_tab"
android:clickable="true" />
</RelativeLayout>

这是我的logcat

http://i.stack.imgur.com/UDUQC.png

任何想法?

4 个答案:

答案 0 :(得分:0)

错误是关于此行的空指针:

Button blade = (Button)findViewById(R.id.fantab);

由于xml中有按钮,因此很可能没有指向正确的布局文件:

setContentView(R.layout.main);

这意味着布局文件必须是main.xml,或者您将代码更改为指向正确的布局。

setContentView(R.layout.Layout);//from your post "here is my Layout.xml"

答案 1 :(得分:0)

cause by: java.lang.NullPointerException
at android.app...FindviewbyID   
at android.app.....main<init>(main.java:48);

问题是有错误引用的findviewbyID对象。在第48行仔细检查。

答案 2 :(得分:0)

findViewById 在<{1}}方法之外,不在任何方法中。


您还要定义onCreate 两次

因此,一旦您定义了按钮刀片,然后在引用它时,您就不应该再次定义它。

所以你的行应该是 -

Button blade

答案 3 :(得分:0)

显然问题是findViewById是在OnCreate函数的括号之后。谢谢你的回答。