2011-08-27 15 views
1

我試圖通過動態創建一個按鈕,而且我創建了。現在我想要編寫單擊事件的功能,所以我需要Button.I的ID我不知道如何創建按鈕動態id.Guide me謝謝推進 這裏我編碼如何在Android中使用Button By Dynamic Creations提供id?

 ScrollView sv = new ScrollView(this); 
     LinearLayout ll = new LinearLayout(this); 
     ll.setOrientation(LinearLayout.HORIZONTAL); 
     sv.addView(ll); 
     Button main=new Button(this); 
     CharSequence value="Main +"; 
     main.setText(value); 
     ll.addView(main); 
      } 
     this.setContentView(sv); 
    } 

回答

4

您可以通過

btn.setId(integer value) at runtime. 

設置任何控件的ID如果你不想設置ID,然後在沒有任何問題

此外,當你創建新的視圖,那麼你必須設置其layout parameters(Height, Width)

例如

btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

所以整個過程猶如

Button btn = new Button(Context); 
btn.setId(1); 
btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
btn.setText("Dynamic button"); 
btn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
      Toast.makeText(v.getContext(),"Dynamic button is clicked", 3000).show(); 
      } 
     }); 
+0

謝謝你明白了 – pkol

0

,你可以簡單地使用這個

Button main= new Button(this); 
      main.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 

       } 
      }); 

有是main.setId(pass here int value);設置ID,但我認爲你不會需要它

+0

你懂了謝謝 – pkol

2

試試看看這個代碼。

Button text = new Button(this); 

text.setId(1); 
text.setText("text here"); 
ll.addView(text); 
text.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     int id = arg0.getId(); // you get ID of your dynamic button 
     Toast.makeText(getApplicationContext(), "Dynamic textview!", Toast.LENGTH_SHORT).show(); 
    } 
}); 

在那個「ll」是一個佈局和添加按鈕。 之後,您可以隨時用click執行clickListener代碼。

相關問題