Viewpager+fragment結構,如何獲取fragment中的控制元件
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">背景:</span>
MainActivity中有一個ViewPager,ViewPager中有四個fragment,在fragmentA中點選某個按鈕後一開一個activityA,activityA將一些資料返回給fragmentA,然後fragmentA修改控制元件的屬性。
問題:
在實際操作中,我在fragmentA中使用getActivity().startActivityForResult(intent, 10);開啟activityA,然後打算使用類似activity間資料的傳遞------在fragmentA中用onActivityResult(int requestCode, int resultCode, Intent data)接收資料,但是無論如何都是空指標。
解決:
在fragmentA中不能通過onActivityResult接收資料,但是MainActivity可以通過onActivityResult(int requestCode, int resultCode, Intent data)接收activityA返回的資料,然後通過:
HomePagerFragment fragment=(HomePagerFragment)getSupportFragmentManager().findFragmentByTag( "android:switcher:" + pager.getId() + ":" + fragmentAdapter.getItemId(0));
獲取到相應的fragment。(Ps:<span style="font-family: Arial, Helvetica, sans-serif;">fragmentAdapter.getItemId(0)中的0表示該fragment在ViewPager中的位置</span>)。
然後通過該fragment找到內部控制元件:
TextView tv = (TextView) fragment.getView().findViewById(R.id.Search_city_txt);
tv.setText(cityName);