Tag: illegalstateexception

IllegalStateException:<MyFragment>当前不在FragmentManager中

我知道这听起来像是FragmentStatePagerAdapter IllegalStateException的重复:<MyFragment>目前不在FragmentManager中,但他的解决scheme与我的情况无关。 我很less遇到以下崩溃: java.lang.RuntimeException:无法暂停活动{MyActivity}: … 由于:java.lang.IllegalStateException:Fragment MyFragment {40648258 id = 0x7f070051}目前不在android.support.v4.app.FragmentManagerImpl.putFragment(MT:516)的FragmentManager中android.support.v4.app.FragmentStatePagerAdapter .saveState(MT:185)在android.support.v4.view.ViewPager.onSaveInstanceState(MT:881) … 在android.app.Activity.onSaveInstanceState(Activity.java:1138)com.android.internal.policy.impl.PhoneWindow.saveHierarchyState(PhoneWindow.java:1522)android.view.View.saveHierarchyState(View.java:6238) )在MyActivity.onSaveInstanceState(MT:336)处的android.support.v4.app.FragmentActivity.onSaveInstanceState(MT:480) 这似乎是我从FragmentStatePagerAdapter无法理解的奇怪的代码: for (int i=0; i<mFragments.size(); i++) { Fragment f = mFragments.get(i); if (f != null) { if (state == null) { state = new Bundle(); } String key = "f" + i; mFragmentManager.putFragment(state, key, f); } } 它看起来像适配器从mFragments获取我的Fragment ,但不能将其状态添加到FragmentManager 。 […]

片段已经添加IllegalStateException

我在容器Activity上使用这个方法来显示一个BFrag public void showBFrag() { // Start a new FragmentTransaction FragmentTransaction fragmentTransaction = mFragmentMgr.beginTransaction(); if(mBFrag.isAdded()) { Log.d(LOG_TAG, "Show() BFrag"); fragmentTransaction.show(mBFrag); } else { Log.d(LOG_TAG, "Replacing AFrag -> BFrag"); fragmentTransaction.replace(R.id.operation_fragments_frame, mBFrag); } // Keep the transaction in the back stack so it will be reversed when backbutton is pressed fragmentTransaction.addToBackStack(null); // Commit transaction fragmentTransaction.commit(); } 我从我的容器Activity调用它; […]

IllegalStateException的用途是什么?

这与今天的同事讨论。 Java的IllegalStateException的Javadocs声明: 表示某个方法在非法或不适当的时间被调用。 换句话说,对于请求的操作,Java环境或Java应用程序不处于适当的状态。 有效的Java说(项目60,第248页): 另一个常见的重用exception是IllegalStateException。 如果由于接收对象的状态而导致调用是非法的,则这通常是抛出的exception。 例如,如果调用者在正确初始化之前尝试使用某个对象,这将是一个例外。 这里似乎有点不一致。 javadocs的第二个句子使得听起来像exception可以描述关于Java执行状态的一个非常广泛的条件,但Effective Java中的描述听起来像是用于特定于与其对象的状态状态相关的条件方法已被调用。 我在JDK中看到的使用方法(例如collections, Matcher )和Guava,似乎都属于Effective Java谈论的范畴(“这个对象处于无法调用这个方法的状态)”。 这也与IllegalStateException的兄弟IllegalArgumentException一致。 JDK中是否存在与“Java环境”或“Java应用程序”相关的合法IllegalStateExceptionexception? 或者是否有任何最佳实践指南提倡将其用于更广泛的执行状态? 如果不是的话,为什么哈维是这样expression的? ;)

java.lang.IllegalStateException:片段不附加到活动

在进行API调用时,我很less得到这个错误。 java.lang.IllegalStateException: Fragment not attached to Activity 我试图把代码放在isAdded()方法中来检查片段是否被添加到了它的活动中,但是我仍然很less得到这个错误。 我不明白为什么我仍然得到这个错误。 我怎样才能防止它? 它显示错误的行 – cameraInfo.setId(getResources().getString(R.string.camera_id)); 下面是我正在做的示例API调用。 SAPI.getInfo(getActivity(), new APIResponseListener() { @Override public void onResponse(Object response) { cameraInfo = new SInfo(); if(isAdded()) { cameraInfo.setId(getResources().getString(R.string.camera_id)); cameraInfo.setName(getResources().getString(R.string.camera_name)); cameraInfo.setColor(getResources().getString(R.string.camera_color)); cameraInfo.setEnabled(true); } } @Override public void onError(VolleyError error) { mProgressDialog.setVisibility(View.GONE); if (error instanceof NoConnectionError) { String errormsg = getResources().getString(R.string.no_internet_error_msg); Toast.makeText(getActivity(), errormsg, Toast.LENGTH_LONG).show(); […]

java.lang.IllegalStateException:在onSaveInstanceState后无法执行此操作

我正在使用我的应用程序的支持库。 在我的FragmentActivity我使用AsyncTask从互联网上下载数据。 在onPreExecute()方法中,我添加一个片段,并在onPostExecute()方法中再次删除它。 当方向改变时,我得到了上述例外。 请看看细节: private class onFriendAddedAsyncTask extends AsyncTask<String, Void, String> { DummyFragment dummyFragment; FragmentManager fm; FragmentTransaction ft; @Override protected void onPreExecute() { Log.v("MyFragmentActivity", "onFriendAddedAsyncTask/onPreExecute"); dummyFragment = DummyFragment.newInstance(); fm = getSupportFragmentManager(); ft = fm.beginTransaction(); ft.add(dummyFragment, "dummy_fragment"); ft.commit(); } @Override protected void onPostExecute(String result) { Log.v("MyFragmentActivity", "onFriendAddedAsyncTask/onPostExecute"); ft = fm.beginTransaction(); ft.remove(dummyFragment); ft.commit(); } @Override protected […]

java.lang.IllegalStateException:在提交响应之后无法(转发|发送redirect|创build会话)

这个方法抛出 java.lang.IllegalStateException:提交响应后无法转发 我无法发现问题。 任何帮助? int noOfRows = Integer.parseInt(request.getParameter("noOfRows")); String chkboxVal = ""; // String FormatId=null; Vector vRow = new Vector(); Vector vRow1 = new Vector(); String GroupId = ""; String GroupDesc = ""; for (int i = 0; i < noOfRows; i++) { if ((request.getParameter("chk_select" + i)) == null) { chkboxVal = "notticked"; } else […]