use of android.widget.TabHost.TabSpec in project robolectric by robolectric.
the class ShadowTabHost method newTabSpec.
@Implementation
public android.widget.TabHost.TabSpec newTabSpec(java.lang.String tag) {
TabSpec realTabSpec = Shadow.newInstanceOf(TabHost.TabSpec.class);
Shadows.shadowOf(realTabSpec).setTag(tag);
return realTabSpec;
}
use of android.widget.TabHost.TabSpec in project platform_frameworks_base by android.
the class RenderSessionImpl method setupTabHost.
/**
* Sets up a {@link TabHost} object.
* @param tabHost the TabHost to setup.
* @param layoutlibCallback The project callback object to access the project R class.
* @throws PostInflateException
*/
private void setupTabHost(TabHost tabHost, LayoutlibCallback layoutlibCallback) throws PostInflateException {
// look for the TabWidget, and the FrameLayout. They have their own specific names
View v = tabHost.findViewById(android.R.id.tabs);
if (v == null) {
throw new PostInflateException("TabHost requires a TabWidget with id \"android:id/tabs\".\n");
}
if (!(v instanceof TabWidget)) {
throw new PostInflateException(String.format("TabHost requires a TabWidget with id \"android:id/tabs\".\n" + "View found with id 'tabs' is '%s'", v.getClass().getCanonicalName()));
}
v = tabHost.findViewById(android.R.id.tabcontent);
if (v == null) {
//noinspection SpellCheckingInspection
throw new PostInflateException("TabHost requires a FrameLayout with id \"android:id/tabcontent\".");
}
if (!(v instanceof FrameLayout)) {
//noinspection SpellCheckingInspection
throw new PostInflateException(String.format("TabHost requires a FrameLayout with id \"android:id/tabcontent\".\n" + "View found with id 'tabcontent' is '%s'", v.getClass().getCanonicalName()));
}
FrameLayout content = (FrameLayout) v;
// now process the content of the frameLayout and dynamically create tabs for it.
final int count = content.getChildCount();
// this must be called before addTab() so that the TabHost searches its TabWidget
// and FrameLayout.
tabHost.setup();
if (count == 0) {
// Create a dummy child to get a single tab
TabSpec spec = tabHost.newTabSpec("tag").setIndicator("Tab Label", tabHost.getResources().getDrawable(android.R.drawable.ic_menu_info_details, null)).setContent(new TabHost.TabContentFactory() {
@Override
public View createTabContent(String tag) {
return new LinearLayout(getContext());
}
});
tabHost.addTab(spec);
} else {
// for each child of the frameLayout, add a new TabSpec
for (int i = 0; i < count; i++) {
View child = content.getChildAt(i);
String tabSpec = String.format("tab_spec%d", i + 1);
// child cannot be null.
@SuppressWarnings("ConstantConditions") int id = child.getId();
@SuppressWarnings("deprecation") Pair<ResourceType, String> resource = layoutlibCallback.resolveResourceId(id);
String name;
if (resource != null) {
name = resource.getSecond();
} else {
// default name if id is unresolved.
name = String.format("Tab %d", i + 1);
}
tabHost.addTab(tabHost.newTabSpec(tabSpec).setIndicator(name).setContent(id));
}
}
}
use of android.widget.TabHost.TabSpec in project android_frameworks_base by DirtyUnicorns.
the class RenderSessionImpl method setupTabHost.
/**
* Sets up a {@link TabHost} object.
* @param tabHost the TabHost to setup.
* @param layoutlibCallback The project callback object to access the project R class.
* @throws PostInflateException
*/
private void setupTabHost(TabHost tabHost, LayoutlibCallback layoutlibCallback) throws PostInflateException {
// look for the TabWidget, and the FrameLayout. They have their own specific names
View v = tabHost.findViewById(android.R.id.tabs);
if (v == null) {
throw new PostInflateException("TabHost requires a TabWidget with id \"android:id/tabs\".\n");
}
if (!(v instanceof TabWidget)) {
throw new PostInflateException(String.format("TabHost requires a TabWidget with id \"android:id/tabs\".\n" + "View found with id 'tabs' is '%s'", v.getClass().getCanonicalName()));
}
v = tabHost.findViewById(android.R.id.tabcontent);
if (v == null) {
//noinspection SpellCheckingInspection
throw new PostInflateException("TabHost requires a FrameLayout with id \"android:id/tabcontent\".");
}
if (!(v instanceof FrameLayout)) {
//noinspection SpellCheckingInspection
throw new PostInflateException(String.format("TabHost requires a FrameLayout with id \"android:id/tabcontent\".\n" + "View found with id 'tabcontent' is '%s'", v.getClass().getCanonicalName()));
}
FrameLayout content = (FrameLayout) v;
// now process the content of the frameLayout and dynamically create tabs for it.
final int count = content.getChildCount();
// this must be called before addTab() so that the TabHost searches its TabWidget
// and FrameLayout.
tabHost.setup();
if (count == 0) {
// Create a dummy child to get a single tab
TabSpec spec = tabHost.newTabSpec("tag").setIndicator("Tab Label", tabHost.getResources().getDrawable(android.R.drawable.ic_menu_info_details, null)).setContent(new TabHost.TabContentFactory() {
@Override
public View createTabContent(String tag) {
return new LinearLayout(getContext());
}
});
tabHost.addTab(spec);
} else {
// for each child of the frameLayout, add a new TabSpec
for (int i = 0; i < count; i++) {
View child = content.getChildAt(i);
String tabSpec = String.format("tab_spec%d", i + 1);
// child cannot be null.
@SuppressWarnings("ConstantConditions") int id = child.getId();
@SuppressWarnings("deprecation") Pair<ResourceType, String> resource = layoutlibCallback.resolveResourceId(id);
String name;
if (resource != null) {
name = resource.getSecond();
} else {
// default name if id is unresolved.
name = String.format("Tab %d", i + 1);
}
tabHost.addTab(tabHost.newTabSpec(tabSpec).setIndicator(name).setContent(id));
}
}
}
use of android.widget.TabHost.TabSpec in project android_frameworks_base by AOSPA.
the class RenderSessionImpl method setupTabHost.
/**
* Sets up a {@link TabHost} object.
* @param tabHost the TabHost to setup.
* @param layoutlibCallback The project callback object to access the project R class.
* @throws PostInflateException
*/
private void setupTabHost(TabHost tabHost, LayoutlibCallback layoutlibCallback) throws PostInflateException {
// look for the TabWidget, and the FrameLayout. They have their own specific names
View v = tabHost.findViewById(android.R.id.tabs);
if (v == null) {
throw new PostInflateException("TabHost requires a TabWidget with id \"android:id/tabs\".\n");
}
if (!(v instanceof TabWidget)) {
throw new PostInflateException(String.format("TabHost requires a TabWidget with id \"android:id/tabs\".\n" + "View found with id 'tabs' is '%s'", v.getClass().getCanonicalName()));
}
v = tabHost.findViewById(android.R.id.tabcontent);
if (v == null) {
//noinspection SpellCheckingInspection
throw new PostInflateException("TabHost requires a FrameLayout with id \"android:id/tabcontent\".");
}
if (!(v instanceof FrameLayout)) {
//noinspection SpellCheckingInspection
throw new PostInflateException(String.format("TabHost requires a FrameLayout with id \"android:id/tabcontent\".\n" + "View found with id 'tabcontent' is '%s'", v.getClass().getCanonicalName()));
}
FrameLayout content = (FrameLayout) v;
// now process the content of the frameLayout and dynamically create tabs for it.
final int count = content.getChildCount();
// this must be called before addTab() so that the TabHost searches its TabWidget
// and FrameLayout.
tabHost.setup();
if (count == 0) {
// Create a dummy child to get a single tab
TabSpec spec = tabHost.newTabSpec("tag").setIndicator("Tab Label", tabHost.getResources().getDrawable(android.R.drawable.ic_menu_info_details, null)).setContent(new TabHost.TabContentFactory() {
@Override
public View createTabContent(String tag) {
return new LinearLayout(getContext());
}
});
tabHost.addTab(spec);
} else {
// for each child of the frameLayout, add a new TabSpec
for (int i = 0; i < count; i++) {
View child = content.getChildAt(i);
String tabSpec = String.format("tab_spec%d", i + 1);
// child cannot be null.
@SuppressWarnings("ConstantConditions") int id = child.getId();
@SuppressWarnings("deprecation") Pair<ResourceType, String> resource = layoutlibCallback.resolveResourceId(id);
String name;
if (resource != null) {
name = resource.getSecond();
} else {
// default name if id is unresolved.
name = String.format("Tab %d", i + 1);
}
tabHost.addTab(tabHost.newTabSpec(tabSpec).setIndicator(name).setContent(id));
}
}
}
use of android.widget.TabHost.TabSpec in project drmips by brunonova.
the class DrMIPSActivity method createTabs.
/**
* Creates/places the tabs in the Tabhost.
*/
private void createTabs() {
tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup();
TabSpec tabCode = tabHost.newTabSpec("tabCode");
tabCode.setIndicator(getString(R.string.code));
tabCode.setContent(R.id.tabCode);
tabHost.addTab(tabCode);
txtCode = (EditText) findViewById(R.id.txtCode);
lblFilename = (TextView) findViewById(R.id.lblFilename);
txtCode.addTextChangedListener(new CodeEditorTextWatcher());
TabSpec tabAssembledCode = tabHost.newTabSpec("tabAssembledCode");
tabAssembledCode.setIndicator(getString(R.string.assembled));
tabAssembledCode.setContent(R.id.tabAssembledCode);
tabHost.addTab(tabAssembledCode);
tblAssembledCode = (TableLayout) findViewById(R.id.tblAssembledCode);
cmbAssembledCodeFormat = (Spinner) findViewById(R.id.cmbAssembledCodeFormat);
cmbAssembledCodeFormat.setOnItemSelectedListener(spinnersListener);
cmbAssembledCodeFormat.setSelection(DrMIPS.getApplication().getPreferences().getInt(DrMIPS.ASSEMBLED_CODE_FORMAT_PREF, DrMIPS.DEFAULT_ASSEMBLED_CODE_FORMAT));
TabSpec tabDatapath = tabHost.newTabSpec("tabDatapath");
tabDatapath.setIndicator(getString(R.string.datapath));
tabDatapath.setContent(R.id.tabDatapath);
tabHost.addTab(tabDatapath);
lblCPUFilename = (TextView) findViewById(R.id.lblCPUFilename);
cmdStep = (ImageButton) findViewById(R.id.cmdStep);
datapathScroll = (HorizontalScrollView) findViewById(R.id.datapathScroll);
boolean performanceMode = DrMIPS.getApplication().getPreferences().getBoolean(DrMIPS.PERFORMANCE_MODE_PREF, DrMIPS.DEFAULT_PERFORMANCE_MODE);
lblDatapathFormat = (TextView) findViewById(R.id.lblDatapathFormat);
cmbDatapathFormat = (Spinner) findViewById(R.id.cmbDatapathFormat);
cmbDatapathFormat.setOnItemSelectedListener(spinnersListener);
cmbDatapathFormat.setSelection(DrMIPS.getApplication().getPreferences().getInt(DrMIPS.DATAPATH_DATA_FORMAT_PREF, DrMIPS.DEFAULT_DATAPATH_DATA_FORMAT));
lblDatapathFormat.setVisibility(performanceMode ? View.GONE : View.VISIBLE);
cmbDatapathFormat.setVisibility(performanceMode ? View.GONE : View.VISIBLE);
lblDatapathPerformance = (TextView) findViewById(R.id.lblDatapathPerformance);
cmbDatapathPerformance = (Spinner) findViewById(R.id.cmbDatapathPerformance);
cmbDatapathPerformance.setOnItemSelectedListener(spinnersListener);
cmbDatapathPerformance.setSelection(DrMIPS.getApplication().getPreferences().getInt(DrMIPS.PERFORMANCE_TYPE_PREF, DrMIPS.DEFAULT_PERFORMANCE_TYPE));
lblDatapathPerformance.setVisibility(!performanceMode ? View.GONE : View.VISIBLE);
cmbDatapathPerformance.setVisibility(!performanceMode ? View.GONE : View.VISIBLE);
tblExec = (TableLayout) findViewById(R.id.tblExec);
tblExecRow = (TableRow) findViewById(R.id.tblExecRow);
TabSpec tabRegisters = tabHost.newTabSpec("tabRegisters");
tabRegisters.setIndicator(getString(R.string.registers));
tabRegisters.setContent(R.id.tabRegisters);
tabHost.addTab(tabRegisters);
tblRegisters = (TableLayout) findViewById(R.id.tblRegisters);
cmbRegistersFormat = (Spinner) findViewById(R.id.cmbRegistersFormat);
cmbRegistersFormat.setOnItemSelectedListener(spinnersListener);
cmbRegistersFormat.setSelection(DrMIPS.getApplication().getPreferences().getInt(DrMIPS.REGISTER_FORMAT_PREF, DrMIPS.DEFAULT_REGISTER_FORMAT));
TabSpec tabDataMemory = tabHost.newTabSpec("tabDataMemory");
tabDataMemory.setIndicator(getString(R.string.data_memory));
tabDataMemory.setContent(R.id.tabDataMemory);
tabHost.addTab(tabDataMemory);
tblDataMemory = (TableLayout) findViewById(R.id.tblDataMemory);
cmbDataMemoryFormat = (Spinner) findViewById(R.id.cmbDataMemoryFormat);
cmbDataMemoryFormat.setOnItemSelectedListener(spinnersListener);
cmbDataMemoryFormat.setSelection(DrMIPS.getApplication().getPreferences().getInt(DrMIPS.DATA_MEMORY_FORMAT_PREF, DrMIPS.DEFAULT_DATA_MEMORY_FORMAT));
}
Aggregations