Merge change 21837 into eclair
* changes: Fix possible NPE on touch mode change in TabHost.
This commit is contained in:
@@ -68,7 +68,7 @@ public class TabHost extends FrameLayout implements ViewTreeObserver.OnTouchMode
|
|||||||
initTabHost();
|
initTabHost();
|
||||||
}
|
}
|
||||||
|
|
||||||
private final void initTabHost() {
|
private void initTabHost() {
|
||||||
setFocusableInTouchMode(true);
|
setFocusableInTouchMode(true);
|
||||||
setDescendantFocusability(FOCUS_AFTER_DESCENDANTS);
|
setDescendantFocusability(FOCUS_AFTER_DESCENDANTS);
|
||||||
|
|
||||||
@@ -134,7 +134,8 @@ mTabHost.addTab(TAB_TAG_1, "Hello, world!", "Tab 1");
|
|||||||
mTabContent = (FrameLayout) findViewById(com.android.internal.R.id.tabcontent);
|
mTabContent = (FrameLayout) findViewById(com.android.internal.R.id.tabcontent);
|
||||||
if (mTabContent == null) {
|
if (mTabContent == null) {
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"Your TabHost must have a FrameLayout whose id attribute is 'android.R.id.tabcontent'");
|
"Your TabHost must have a FrameLayout whose id attribute is "
|
||||||
|
+ "'android.R.id.tabcontent'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,7 +177,7 @@ mTabHost.addTab(TAB_TAG_1, "Hello, world!", "Tab 1");
|
|||||||
if (!isInTouchMode) {
|
if (!isInTouchMode) {
|
||||||
// leaving touch mode.. if nothing has focus, let's give it to
|
// leaving touch mode.. if nothing has focus, let's give it to
|
||||||
// the indicator of the current tab
|
// the indicator of the current tab
|
||||||
if (!mCurrentView.hasFocus() || mCurrentView.isFocused()) {
|
if (mCurrentView != null && (!mCurrentView.hasFocus() || mCurrentView.isFocused())) {
|
||||||
mTabWidget.getChildTabViewAt(mCurrentTab).requestFocus();
|
mTabWidget.getChildTabViewAt(mCurrentTab).requestFocus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user