0

对不起,我只是想知道。可以从设置操作栏child intent吗?

就我而言,我的主要活动是SherlockActivity,但它使用的是tab主机。然后我从 Intent 添加一个 tabspec,它也使用 sherlockActivity。然后我想根据该标签规范的意图设置操作栏。

如果可以这样做,我可以知道怎么做吗?因为这使我的应用程序遇到错误。

08-16 10:30:00.470: E/AndroidRuntime(16137): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{}: java.lang.NullPointerException

这是我的主要活动:

公共类 MainActivity 扩展 SherlockActivity {

private LocalActivityManager lam;
private TextView tv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);

    lam = new LocalActivityManager(this, false);
    lam.dispatchCreate(savedInstanceState);

    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    getSupportActionBar().setCustomView(R.layout.header);

    View v = getSupportActionBar().getCustomView();
    tv = (TextView) v.findViewById(R.id.headerTitle);
    tv.setTypeface(Typeface.createFromAsset(AlumniApplication.getContext().getAssets(), "fonts/LLNITRO_.ttf"));
    tv.setText("Title");

    setTab();
}

private void setTab(){      
    TabHost tabHost = (TabHost) findViewById(R.id.main_tabhost);
    tabHost.setup(lam);

    TabSpec com = tabHost.newTabSpec("community");
    com.setIndicator(getTabIndicator(R.drawable.com_tab));
    com.setContent(new Intent(AlumniApplication.getContext(), CommunityActivity.class));

    tabHost.addTab(com);
}

private View getTabIndicator(int srcId){
    View v = LayoutInflater.from(AlumniApplication.getContext()).inflate(R.layout.tab_image_layout, null);

    ImageView iv = (ImageView) v.findViewById(R.id.tab_image);
    iv.setImageResource(srcId);

    return v;
}

}

然后我想从那个孩子意图中设置动作栏

公共类 CommunityActivity 扩展 SherlockActivity {

private LocalActivityManager lam;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tab_above_layout);
}

}

但是当我这样做时,它出错了。

4

1 回答 1

0

如果您想从子片段中调用您的活动(托管片段)的方法,则需要获取对托管活动的引用。有了getActivity()你就可以得到这个连接。现在您可以在片段内调用活动的方法。

例如:

getActivity().setTitle(R.string.my_actionbar_title); 
于 2013-08-16T09:39:21.713 回答