ActivityGroup을 사용하여 TabHost 아래에있는 Activity1 내에서 활동 2를 엽니 다. 따라서 탭 그룹이 있고 활동 1이 그 중 일부입니다. 그러나 활동 1의 버튼을 클릭하면 활동 2가 열리고 여전히 탭 아래에있게됩니다. 나는이 오류를 얻고있다ActivityGroup에서보기에 풍선을 적용 할 수 없음
@Override
public View newDropDownView(Context context, Cursor cursor, ViewGroup parent) {
super.newDropDownView(context, cursor, parent);
View view = View.inflate(context, R.layout.custom_spinner_row, null);
int labColumn = cursor.getColumnIndex("lab");
String getLab = cursor.getString(labColumn);
TextView lab = (TextView)view.findViewById(R.id.CustomSpinnerTitle);
lab.setText(getLab);
return view;
}
: 활동 2에서 나는 사용자 정의 창을 팽창하고 SimpleCursorAdapter 사용을위한 전화 몇 스피너를 가지고
public void replaceContentView(String id, Intent newIntent) {
View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
this.setContentView(view);
}
그러나이 다음 코드를 사용하여 잘 작동
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): FATAL EXCEPTION: main
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running?
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.view.ViewRoot.setView(ViewRoot.java:527)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.view.Window$LocalWindowManager.addView(Window.java:424)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.app.Dialog.show(Dialog.java:241)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.app.AlertDialog$Builder.show(AlertDialog.java:802)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.widget.Spinner.performClick(Spinner.java:260)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.view.View$PerformClick.run(View.java:9080)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.os.Handler.handleCallback(Handler.java:587)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.os.Handler.dispatchMessage(Handler.java:92)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.os.Looper.loop(Looper.java:123)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at android.app.ActivityThread.main(ActivityThread.java:3683)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at java.lang.reflect.Method.invokeNative(Native Method)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at java.lang.reflect.Method.invoke(Method.java:507)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-21 02:33:16.644: ERROR/AndroidRuntime(1453): at dalvik.system.NativeStart.main(Native Method)
내가이 오류를 표시하는 이유는 활동 1의 contentView를 2로 대체했기 때문에 활동 2가 실제로 실행 중이 아니기 때문입니다. 전자 탭. 그러나 나는 그렇게 할 수있는 다른 방법을 모른다. 내 탭 아래에서 활동 2를 실행하는 방법은 실제로 contentView를 1로 바꾸는 대신 실제로 활동을 실행하는 것과 같은 방법으로 수행 할 수 있습니까?
getParent()가 작동하지 않습니다. 컨텍스트는 나쁘지 않지만 실제로 활동이 시작되지는 않습니다. 보기로 설정 한 다음 첫 번째 활동 인 setContentView()에서 해당보기를 실행하여 활동을 열었습니다. 두 활동을 내 탭 아래에 유지하려면이 방법으로해야했습니다. – ryandlf
오류가 발생하는 전체 활동 코드를 표시 할 수 있습니다. 그리고 오류는 여기에 나쁜 컨텍스트를 사용하고 있음을 보여줍니다. –
오류 코드가 업데이트되었습니다. 활동 코드가 너무 길어 전체 내용을 게시 할 수 없습니다. 그러나 나는 시작이 의도와 시작을 사용하는 규칙적인 방법이기 때문에 내가 그 활동을 시작하는 방법 때문에 오류가 발생한다는 것을 안다. 지금은 활동 1의보기를 바꾸어서 내 탭 아래에서 활동 2를 실행할 수 있습니다. – ryandlf