2014-02-28 21 views
-1

我一直在試圖開發一個應用程序。但是,當我宣佈的任何對象說類按鈕,甚至連其他任何類,那麼它說:「不幸的是,應用程序已停止」當我運行它。請幫忙。Android應用問題

的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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <Button 
     android:id="@+id/button3" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/timePicker1" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="17dp" 
     android:text="Set" /> 

    <AnalogClock 
     android:id="@+id/analogClock1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="24dp" /> 

    <TimePicker 
     android:id="@+id/timePicker2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/timePicker1" 
     android:layout_below="@+id/analogClock1" /> 

    <TimePicker 
     android:id="@+id/timePicker1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

Java主文件

包com.example.quiet;

import android.os.Bundle; import android.app.Activity;

import android.view.Menu; 進口android.widget.Button;

公共類MainActivity擴展活動{

int hour; 
int minute; 
Button btn1; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    btn1=(Button)findViewById(R.id.button3); 



} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

}

日誌

02-28 17:06:42.917: E/AndroidRuntime(18977): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.quiet/com.example.quiet.MainActivity}: java.lang.ClassCastException: android.widget.TimePicker cannot be cast to android.widget.Button 
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread.access$600(ActivityThread.java:123) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.os.Looper.loop(Looper.java:137) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread.main(ActivityThread.java:4424) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at java.lang.reflect.Method.invokeNative(Native Method) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at java.lang.reflect.Method.invoke(Method.java:511) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at dalvik.system.NativeStart.main(Native Method) 
02-28 17:06:42.917: E/AndroidRuntime(18977): Caused by: java.lang.ClassCastException: android.widget.TimePicker cannot be cast to android.widget.Button 
02-28 17:06:42.917: E/AndroidRuntime(18977): at com.example.quiet.MainActivity.onCreate(MainActivity.java:22) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.Activity.performCreate(Activity.java:4470) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
02-28 17:06:42.917: E/AndroidRuntime(18977): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
02-28 17:06:42.917: E/AndroidRuntime(18977): ... 11 more 
+4

發佈您的logcat –

+0

顯示我logcat .... – rajshree

+2

我們確實需要您的LogCat,但作爲在您發佈的代碼在黑暗中野生刺傷我會猜測'btn1.setText(小時)'找到NullPointer小時,因爲它的值沒有被定義,或者如果它被定義,你需要'btn1.setText(String.valueOf(小時));'把int轉換成字符串 –

回答

1

我猜這是因爲btn1.setText(hour);
由於小時是一個int,的setText會看對於具有您通過的ID的資源。嘗試將一個字符串傳遞給你的setText。

1

要調用setText(0)這將導致異常,而不是叫喜歡的東西setText("12:00");

+0

但我設置變量小時..... –

1

嘗試:

btn1.setText("" + hour); 

所以要解決的廉政串問題

0

這些線看起來很可疑。 (免責聲明 - 這可能是也可能不是主要問題)。

android:layout_alignRight="@+id/timePicker1" 

    .... 

    android:layout_alignLeft="@+id/timePicker1" 

您使用的是 「@ + ID /」 命名的佈局關係。刪除+符號,以便您不試圖定義ID。比如下面:

android:layout_alignRight="@id/timePicker1" 

    .... 

    android:layout_alignLeft="@id/timePicker1" 

但是做,保持@ + ID /標籤上的構件資源標識,他們正在申報:

<TimePicker 
    android:id="@+id/timePicker1" 

我不知道,如果資源ID是你的核心問題,Android資源編譯器可能會像你一樣處理它。但它看起來很可疑,我可以打電話了。