簡體   English   中英

OnClick函數中的Android參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM