2014-11-06 134 views
-2

我試圖通過OnClickListener動態添加Button。但我一直在該行收到錯誤按鈕不會在onClickListener中初始化

Button myButton = new Button(this); 

錯誤說

The constructor Button(new View.OnClickListener(){}) is undefined 

所以我怎麼創造這個Button如果它不會讓我初始化呢?有更好的方法我應該設置這個OnClickListener

button_test.setOnClickListener(
       new View.OnClickListener() 
       { 
        public void onClick(View view) 
        { 

          LinearLayout ll = (LinearLayout)findViewById(R.id.ll_bttn_words); 
          LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 

          Button myButton = new Button(this); //error 
          myButton.setText("Add Me"); 

          ll.addView(myButton, lp);  
        } 
       } 

回答

2

變化

Button myButton = new Button(this); 

Button myButton = new Button(view.getContext()); 

這裏,thisOnClickListener因此錯誤消息。你想要的是Activity Context其中view s(參數onClick()Context將返回。

From the docsgetContext()

返回視圖中運行的背景下,通過它可以訪問當前的主題,資源等

+0

感謝。你能解釋一下view.getContext()是做什麼的嗎?或者它如何與按鈕 – user2456977 2014-11-06 00:31:38

+0

哦,謝謝你已經做到了! – user2456977 2014-11-06 00:32:11