簡體   English   中英

Android從兒童意圖設置操作欄

[英]Android setting action bar from child intent

打擾一下,我只是想知道。 可以根據child intent設置操作欄嗎?

就我而言,我的主要活動是SherlockActivity ,但它使用的是tab宿主。 然后我從Intent添加了一個tabspec,它也使用了sherlockActivity。 然后我想根據該tabspec的意圖設置操作欄。

如果可以這樣做,請問我怎么知道? 因為那樣會使我的應用程序遇到錯誤。

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);
}

}

但是當我這樣做時,它就出錯了。

如果要從子片段中調用活動的方法(正在托管片段),則需要獲得對該托管活動的引用。 使用getActivity()可以獲得此連接。 現在,您可以在片段內調用活動的方法。

例如:

getActivity().setTitle(R.string.my_actionbar_title); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM