0

すみません、知りたかっただけです。からアクションバーを設定することは可能child intentですか?

私の場合、私の主な活動は ですが、ホストSherlockActivityを使用しています。tab次に、sherlockActivity も使用するインテントからタブスペックを追加しています。そして、そのタブスペックの意図からアクションバーを設定したいと思います。

それが可能であれば、方法を教えてもらえますか? それは私のアプリケーションがエラーに遭遇するからです。

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

これが私の主な活動です:

public class MainActivity extends 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;
}

}

そして、その子インテントからアクションバーを設定したかった

public class 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 に答える