2015-07-23 2 views
-2

У меня есть класс фрагмент:Как интерфейс общения - Нужен развернутый ответ

public class UploadFragmentOne extends Fragment {} 

Я подклассы:

public interface Communicator { 
     void communicate(int position); 
    } 

В onCreateView:

((Communicator) getActivity()).communicate(1); 

Хостинг подпись деятельности:

public class DetailsPager extends FragmentActivity implements UploadFragmentOne.Communicator {} 

функция члена в вышеприведенной деятельности:

public void communicate(int position) { 
     Toast.makeText(DetailsPager.this, "Clicked " + position, Toast.LENGTH_LONG).show(); 
    } 

Это работает как шарм, но я не понимаю, КАК? Извините, это может быть слишком глупо, но я хочу знать, как в нем действует контроль?

+1

'вы можете сказать, что именно вы не получаете?? – Gattsu

+0

'((Communicator) getActivity()). Общаться (1);' когда я мог бы сделать это просто как '(MyActivity) activity.some_method().' – User3

+0

Просьба уточнить вашу конкретную проблему или добавить дополнительные сведения, чтобы точно указать, что именно тебе нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите. См. Страницу [Как спросить] (http://stackoverflow.com/help/how-to-ask), чтобы помочь прояснить этот вопрос. – Gattsu

ответ

1

Вы должны взглянуть на следующий link once.- Теперь приходят на ваш запрос

(MyActivity)activity.some_method() 

Теперь предположим, что вы собираетесь прикрепить один и тот же фрагмент для другой деятельности говорят MainActivity, то вам нужно сделать, как -

(MainActivity)activity.some_method() 

Теперь предположит, что какая-либо другая деятельность реализует один и тот же фрагмент, то каждый раз, когда вам нужно использовать instanceOf проверки, а затем вызвать метод, а также добавить его.

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

интерфейс, как следует из названия, предлагает способ передачи без фактического экземпляра класса. Их нужно только реализовать. Вы можете посмотреть на OnClickListener в классе API android API View.

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