2016-12-11 6 views
1

я в настоящее время выяснить WIFIDirect, в основном следуя демо Google, перечисленные нижеИнициализация фрагмента без FragmentTransactions или .commit? Ошибся?

(https://android.googlesource.com/platform/development/+/master/samples/WiFiDirectDemo/src/com/example/android/wifidirect)

Я серьезно спутать, кстати демка запускающее фрагмент детали из listFragment, где интерфейс называющий от родительского хоста деятельности (ShowDetails (устройство)), как показано ниже

@Override 
public void showDetails(WifiP2pDevice device) { 
DeviceDetailFragment fragment = (DeviceDetailFragment) getFragmentManager() 
.findFragmentById(R.id.frag_detail); 
fragment.showDetails(device); 
} 

Мы тогда bouncedto собственного ShowDetails в detailFragment (в устройстве)) метод:

public void showDetails(WifiP2pDevice device) { 
this.device = device; 
this.getView().setVisibility(View.VISIBLE); 
TextView view = (TextView) mContentView.findViewById(R.id.device_address); 
view.setText(device.deviceAddress); 
view = (TextView) mContentView.findViewById(R.id.device_info); 
view.setText(device.toString()); 
} 

Я выполнил поиск по коду, не было .commit() или FragmentTransaction в любом месте. Я подозреваю, что это вызов .getView.SET_VISIBILITY, но без .commit ничего не должно произойти правильно ?. Любая помощь будет оценена!

ответ

0

Вам не нужно добавлять транзакцию, если фрагмент находится непосредственно в xml. Вам нужна только транзакция, когда вы меняете элемент на экране для фрагмента.

+0

Ах да, я просто нашел его. Я никогда не использовал фрагменты таким образом. Спасибо! –