フラグメントを含むタブを追加する ActionBar があり、それらのタブ (フラグメント) の一部内にリストビューがあります。これらの ListView 項目のいずれかをクリックすると、ActionBar を非表示にしたいと考えています。
これは、リストビューを持つタブです。
public class FragmentsTab2 extends SherlockListFragment implements
ActionBar.TabListener {
private Fragment mFragment;
String[] values = { "Consulting&Technology", "Infra-estruturas", "HRO",
"BPO", "Contact Center"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from fragment1.xml
getActivity().setContentView(R.layout.fragment2);
}
public void onActivityCreated(Bundle savedInstaceState){
super.onActivityCreated(savedInstaceState);
setListAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,values));
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// FragmentManager fm = getFragmentManager();
// switch (position)
// {
// case 0:
// newFragment = new FragmentsTec();
// break;
// }
// FragmentTransaction ft = fm.beginTransaction();
// ft.addToBackStack(null)
// .commit();
String sText = ((TextView) v).getText().toString();
// Intent intent = null;
if(sText.equals("Consulting&Technology"))
{
mFragment = new FragmentsTec();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(android.R.id.content, mFragment);
ft.commit();
}
else
if(sText.equals("Infra-estruturas"))
{
mFragment = new FragmentsInfra();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(android.R.id.content, mFragment);
ft.commit();
}
else
if(sText.equals("HRO"))
{
mFragment = new FragmentsHRO();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(android.R.id.content, mFragment);
ft.commit();
}
else
if(sText.equals("BPO"))
{
mFragment = new FragmentsBPO();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(android.R.id.content, mFragment);
ft.commit();
}
else
if(sText.equals("Contact Center"))
{
mFragment = new FragmentsCC();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(android.R.id.content, mFragment);
ft.commit();
}
}
私は使用しようとしましgetSupportActionBar.hide()
たが、SherlockListFragment であるため、使用できません。
更新: ListView タブ内で actionBar を非表示にすることを宣言しようとしていました。代わりにフラグメントで実行する必要があります。そして、私はSherlockFragmentを使用しているので、getSherlockActivity()
代わりに使用する必要がありますgetActivity()
public class FragmentsCC extends SherlockFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().setContentView(R.layout.fragmentcc);
ActionBar actionBar = getSherlockActivity().getSupportActionBar();
actionBar.hide();
}
}