Tom*_*omC 1 android android-fragments actionbarsherlock
我似乎无法更改我的fragmentActivity片段中的textview中的文本.另外我尝试过frag.getView().findViewById,虽然我认为这是正确的方法,但返回null并抛出一个nullpointer异常.
如果我在Fragment本身中编写方法来设置文本并使用getView(),我也会得到nullpointer异常.
另外值得注意的是,加载的第一个片段(由fragment:name调用)使用相同的代码加载和填充文本.它只FragmentTransaction.replace()在被叫之后才起作用
下面的代码不会抛出任何异常,但文本仍为空白.
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if(tab.getTag().equals("info")) {
DisplayEventInfoFragment frag = new DisplayEventInfoFragment();
ft.replace(R.id.detailsfragment, frag);
final TextView mTimeView = (TextView)findViewById(R.id.ievent_title);
final TextView mVenueView = (TextView)findViewById(R.id.ievent_venue);
final TextView mDescView = (TextView)findViewById(R.id.ievent_description);
mTimeView.setText(thisEvent.get("theTime")+" - "+thisEvent.get("endTime"));
mVenueView.setText(thisEvent.get("venue"));
mDescView.setText(thisEvent.get("description"));
} else if(tab.getTag().equals("location")) {
//DisplayEventMapFragment frag = new DisplayEventMapFragment();
//ft.replace(R.id.detailsfragment, frag);
}
}
Run Code Online (Sandbox Code Playgroud)
查询主视图或片段的任何子视图时,必须等到调用Fragment.onCreateView().
看来奇怪的是,父Activity负责修改Fragments的布局组件.使用Fragments的一个主要优点是它们可以自包含并在整个应用程序中重用.
也许更可行的方法是覆盖片段的onActivityCreated()或onStart()(在onCreateView()之后调用),并让它们在那里填充TextView.
| 归档时间: |
|
| 查看次数: |
2890 次 |
| 最近记录: |