簡體   English   中英

知道在Android中單擊了哪個按鈕

[英]Knowing which button was clicked in Android

我正在制作一個將在相同布局上包含81個按鈕的應用程序。 它們全都稱為我創建的稱為“ Tile”的對象。 問題是這些圖塊存儲在數組中,因此我需要知道以int格式單擊了哪個按鈕才能調用圖塊( tiles[??] )。 我正在使用onClick(View v)方法。 我也試過這個:

Log.i("Tile", v.getId() + "was clicked")

它在logcat中給我的結果是一個非常長的整數。

那么如何知道數字格式單擊了哪個按鈕? 臨時id( R.id.tile1 )和這個長整數之間的關系是什么,因為它已經是一個數字,所以可能會有所幫助?

PS:我知道我可以使用Switch將每個id分配給一個整數,但是因為它們是81,這將浪費時間,並使代碼非常復雜。

希望您可以使用標簽選項。 您可以通過view.setTag(1)設置視圖的標簽,然后在單擊事件時可以使用view.getTag()獲取標簽集。

在android中,我們可以使用按鈕的ID來獲取Click監聽器中的click事件。
假設您有5個按鈕:確保您的Activity / Fragment實現OnClickListener

//在OnCreate中

  Button mClickButton1 = (Button)findViewById(R.id.clickButton1);
  mClickButton1.setOnClickListener(this);
  Button mClickButton2 = (Button)findViewById(R.id.clickButton2);
  mClickButton2.setOnClickListener(this);
  Button mClickButton3 = (Button)findViewById(R.id.clickButton3);
  mClickButton3.setOnClickListener(this);
  Button mClickButton4 = (Button)findViewById(R.id.clickButton4);
  mClickButton4.setOnClickListener(this);
  Button mClickButton5 = (Button)findViewById(R.id.clickButton5);
  mClickButton5.setOnClickListener(this);</br>

//在此之后,您將覆蓋OnClickListener中的onclick方法

public void onClick(View v) {
  switch (v.getId()) {
      case  R.id.clickButton1: {
        // do something for button 1 click
        break;
      }
      case R.id.clickButton2: {
        // do something for button 2 click
        break;
      }

    //.... etc
   }
}

您可以使用button.setTag(position)將位置設置為標簽。

並在調用onclick時獲取該標記值。

public void onclick(View v){
  int position = Integer.parseInt(v.getTag().toString());
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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