2013-09-07 3 views
1

Я динамически создавать кнопки и мне нужно динамически установки setOnClickListener() В настоящее время я пытаюсь использовать следующий код, но он дает мне эту ошибку синтаксиса:Динамическое создание кнопок с setOnClickListener

private void AddButton(){ 
    Button btn = new Button(this); 
    btn.setOnClickListener(OnClick(this)); 

    layout.addView(delBtn); 
} 

public void OnClick(View v) { 
    Log.d("Button", "Dynamically created button was clicked"); 
} 

"The method OnClick(View) in the type ActivityExample is not applicable for the arguments()"

Как это разрешить?

EDIT: мне нужно иметь кнопку на методе нажми слушатель из метода AddButton()

ответ

3

Или, если вы хотите иметь отдельную переменную для слушателя:

private void AddButton(){ 
    Button btn = new Button(this); 
    btn.setOnClickListener(listener); 

    layout.addView(delBtn); 
} 

public OnClickListener listener = new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     Log.d("Button", "Dynamically created button was clicked"); 
    } 
}; 
+0

Спасибо, что работает шарм! Примут, когда смогут – Nick

0

Попробуйте это с помощью annonymous внутреннего класса

btn.setOnClickListener(new OnClickListener() 
{ 
     @Override 
     public void onClick(View V) 
     { 
       // do something 
     }  
}); 

Или сделать ваш класс реализации OnClickListener. Переопределить метод OnClick и

btn.setOnClickListener(this); 
+0

Мне нужно сделать это, используя отдельный метод за пределами метода кнопки создания извините – Nick

+0

@Nicholas сделать ваш класс реализующим OnClickListener. затем применить метод onClick, а затем btn.setOnClickListener (this); – Raghunandan

0

вы должны реализовать onClickListener в своем классе.

Смежные вопросы