[英]Android Parameters in OnClick function
我有一個16(4x4) TextViews
的表。 如果單擊其中一個,我想更改其顏色並從布爾數組中標記或取消標記。
在我的.xml中, TextViews
看起來像這樣:
<TextView
android:id="@+id/bonus0"
android:layout_width="0dip"
android:layout_height="50dip"
android:layout_weight="0.25"
android:layout_margin="1dip"
android:background="#FFFFFF"
android:textIsSelectable="false"
android:onClick="ClickTurnColor"
android:clickable="true"
android:textSize="25sp"
/>
因此,單擊TextView
應該啟動ClickTurnColor()
函數。 在這個函數中,我需要onCreate()
函數中的一些變量。 當我嘗試將它們作為ClickTurnColor()
函數的參數傳遞時,我得到錯誤。
有誰能夠幫助我? 謝謝!
聲明需要外部變量onCreate()
在初始化它們onCreate()
然后在使用它們ClickTurnColor
方法。 您將不得不恢復其方法定義,因此它只接受一個參數(視圖):
public void ClickTurnColor (View v)
{
//implementation
}
另外,請記住,Java命名約定規定方法應以小寫字母開頭。
或者采用非xml方法並在偵聽器內部使用onCreate()
如果你真的必須將這些變量保持在本地:
button.setOnClickListener (new OnClickListener () {
@Override
public void onClick (View v)
{
//use your variables here
}
});
但是,如果它們不是實例變量,並且您將它們保持在onCreate()
本地,那么現在必須將這些變量設為final
。
此外,既然你提到你有一個網格,你可以嘗試使用GridView
並使用OnItemClickListener
。 它仍然附帶我之前提到過的警告(要么將局部變量設置為非本地變量,要么將它們聲明為final
變量),但根據您的需要,它可能更清晰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.