2017-01-16 28 views
0

我已經創建了按鈕單擊活動的動態按鈕。當我在活動中的按鈕上創建多個按鈕時,onclick可用於最近的按鈕,因爲我爲每個按鈕分配了id。我怎麼能識別除最近的按鈕之外按下哪個動態按鈕。 這裏是我想造成這樣的我的代碼如何找到其動態按鈕被點擊的Android

public void dynamicButton() 
    { 
     // int x=0; 
     preferences = PreferenceManager.getDefaultSharedPreferences(TimeStudy.this); 
     value = preferences.getInt("value", 0); 
     //myButton = new Button(this); 



      // if (value > x) 
     if (i <= value) { 
       myButton= new Button(this); 
       myButton.setId(value); 
       BtnId.add(value); 
       myButton.setTag(value); 

       LinearLayout ll = (LinearLayout) findViewById(R.id.dynamiclayout); 
       ll.setOrientation(LinearLayout.VERTICAL); 
       ll.setPadding(10, 300, 10, 10); 
       LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 
         LinearLayout.LayoutParams.WRAP_CONTENT); 

       myButton.setLayoutParams(lp); 
       btnid= myButton.getId(); 
       myButton.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         switch (btnid) { 
          case 1:case 2:case 3:case 
           Intent intent = new Intent(TimeStudy.this, CollectSample.class); 
          startActivity(intent); 
           break; 
         } 

        } 
       }); 

       ll.addView(myButton, lp); 
       i++; 

      } 
     switch (btnid) { 
      case 1:case 2:case 3: 
        SharedPreferences average = getSharedPreferences("avg", 0); 
       String avgbtn = average.getString("btnavg", ""); 


       settings = getSharedPreferences("dynamicbtname", 0); 
       btnname = settings.getString("btnname", ""); 
       ar.add(btnname); 

       String styledText = "<font color='#008000'>" + btnname + "</font>" + "&nbsp" + "&nbsp" + "&nbsp" 
         + "<small>" 
         + avgbtn + "</font>" 
         + "<small>"; 
       myButton.setText(Html.fromHtml(styledText)); 

       myButton.setGravity(Gravity.CENTER | Gravity.LEFT); 
       break; 
     } 

片斷即使在第一個按鈕創建的所有三個按鈕和1個按鈕被點擊任何表演之後。 enter image description here

我得到這個,如果我按下1按鈕後創建2或第三個按鈕數據返回到最近的按鈕。 enter image description here

任何幫助提前appriciated感謝。

回答

0

有兩種方法。

1)通過比較在

2傳遞的視圖可變檢查)使用OnClickListener實現,它知道它是哪一個(通過使用不同的類,或使用一個類與它的參數)。

+0

你能不能詳細查看變量是如何進行比較。 – bilawal

+0

我使用view.gettag(); 2個按鈕有不同的標籤,但它仍然返回按鈕2上的數字,即使標籤值是當我使用開關設置數字時 – bilawal