0
我正在做一個觀點,在這裏我需要把TextClock,首先它必須是在visibility = gone
,而當一個複選框用戶點擊時,textclock的知名度必須改變爲可見。TextClock在Android是空
佈局看起來像這樣:(activity_main_activity_2)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1" >
<!-- Title -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/title"
android:id="@+id/title"
android:textSize="25sp"
android:textStyle="bold"
android:layout_weight="0.05"
android:textColor="#000" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<EditText
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/editTitle"
android:layout_weight="0.06"
android:inputType="text" />
</LinearLayout>
<!-- Description -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/description"
android:id="@+id/description"
android:layout_weight="0.02"
android:textSize="25sp"
android:textStyle="bold"
android:textColor="#000" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<EditText
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/editDescription"
android:layout_weight="0.04"
android:inputType="text" />
</LinearLayout>
<!-- Time -->
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/time_update">
<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/clock_important"
android:textSize="25sp"/>
</LinearLayout>
<!-- Important -->
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<CheckBox
android:layout_width="match_parent"
android:layout_height="61dp"
android:text="@string/important"
android:id="@+id/important"
android:textSize="25sp"
android:textStyle="bold" />
</LinearLayout>
<!-- Buttons -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<!-- Edit -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/edit"
android:id="@+id/btn_edit"
android:textStyle="bold"
android:textSize="20sp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_weight="0.05" />
<!-- Cancel -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel"
android:id="@+id/btn_cancel"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_weight="0.05" />
</LinearLayout>
</LinearLayout>
正如你可以看到,時鐘的ID是:android:id="@+id/clock_important"
。
然後在活動中我做的:
TextClock clock;
......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity_2);
clock = (TextClock) findViewById(R.id.clock_important);
clock.setVisibility(View.GONE);
....
這裏是哪裏出了問題來了,因爲clock
爲空。
日誌文件
Caused by: java.lang.NullPointerException
at com.dm.ejercicio_1.MainActivity_2.onCreate(MainActivity_2.java:40)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
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:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)
我該如何解決呢?我不知道爲什麼不膨脹它....
P.S:我設置minSdkVersion 17
編輯15年8月10日 - >發現的解決方案
最後我找到了解決辦法。 當我創建的活動,機器人工作室創建了第二個佈局,一個新的版本,另一個用於V17,和我使用的ID是作爲用於V17佈局ID不同。這就是始終爲空的原因。
Nope..is仍然空指針 – Shudy
撞毀我找到解決辦法......其實問題是setVisibility(View.GONE); .. ..refer http://stackoverflow.com/questions/22645065/how-to-make-analog-clock-invisible-and-visible-on-click-button-android – sasikumar
其實這個問題是相似的,但不一樣的,因爲,代碼永遠不會將小部件綁定到對象,這就是爲什麼我得到「nul」 l指針「異常。它崩潰,當因爲...我嘗試做clock.setVisibility(View.GONE)對象時鐘,爲空 – Shudy