2012-04-20 5 views
0

Пожалуйста, дайте мне подсказку, как решить эту проблему:Android: Как вызвать родительский метод активности из дочернего пользовательского представления?

У меня есть два пользовательских вида в моей деятельности, и я хотел бы вызвать метод Activity после нажатия кнопки в одном из пользовательских представлений (Y).
Я могу получить представление X от родительской Acitivity на findViewById() и назвать его общедоступным методом. Но как я могу позволить родителям Acitivy знать, что нажата кнопка?

Должен ли я передать ссылку на активность для просмотра Y для вызова метода активности из OnClickListener?

example Спасибо!

ответ

1
button = (Button)customviewY.findViewById(R.id.btnClick); 

button.setOnClickListener(new OnClick..(){ 
    onClick(View v) 
    { 
     textView= (TextView)customviewY.findViewById(R.id.txtView); 
     textView.setText(""); 
    } 
}); 
+0

Спасибо. А что, если эти изменения сложнее? Например, сохранение данных в SharedPreferences, выполнение AsyncTask и т. Д. У меня уже есть метод, делающий все это в родительской активности, и я подумал, что могу назвать это как-то. Должен ли я дублировать метод, чтобы его можно было вызвать из OnClickListener? –

+0

его зависит от любого повторяющегося кода или показать или скрыть взгляды, если ур приложение не является сложным ... или лучше использовать TabView – MAC

+0

я понял, что на самом деле _need_ вызвать метод Activity (и выполнить AsyncTask), поэтому я 'v немного изменил вопрос. Единственное решение, которое перешло мне в голову, - передать ссылку Activity на представление с помощью кнопки (однако представление добавляется через XML, поэтому я не называю его конструктором нигде). Должен ли я передать действие через некоторый метод 'set'? –

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