Tag: android activity

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(); […]

Android碎片onCreateView与onActivityCreated

我知道一个片段的视图层次结构必须在onCreateView中膨胀,但onCreateView什么其他function可以与什么应该等待onActivityCreated? 我目前的实现使用单独的一切活动,一个典型的活动在onCreate方法中完成大部分的工作,包括扩展视图,设置内容视图,用数据初始化各种小部件,设置监听器等等。 那么这可能全部移到onCreateView,或者应该把一些函数放入onActivityCreated方法呢?

分割或不分割碎片反对活动。 为什么我应该使用多个Activity?

关于是否应该使用Activities或Fragments有很多讨论。 例如: 要片段的还是-不以片段 一个活动和所有其他碎片 多less活动与碎片 在Android应用程序中使用Activity或Fragment 我发现的大部分讨论都是在Android 4.2之前发布的。 随着Android 4.2谷歌发明嵌套片段 。 因此,我实际上没有看到任何理由使用多个Activity 。 在Fragments的早期阶段,他们应该被用在应用程序中,同时以舒适的方式支持平板电脑和智能手机 。 因此,例如,你有一个ListView可以打开一个细节View点击一个项目。 在智能手机上,我们将replaceListView并显示详细的View 。 而平板电脑而不是用细节视图replace列表可以同时显示两个Views 。 现在嵌套的Fragments有很多其他的可能性。 如果你想使用一个单一的Activity ,你可以将一般信息存储在Activity ,每个Fragment都可以访问它。 除此之外,嵌套Fragments也可以为孩子的Fragments存储信息。 通过Fragments我可以轻松地重新使用Views ,可以同时显示多个Fragment ,并且可以轻松地形成一个Fragment的对话框。 这一切可能只是一些复制和粘贴操作。 如果我使用“ Activities则必须改变很多才能完成。 我最近实现了一个应用程序 ,我可以轻松地使用两个Fragment-ViewPager使事情变得非常漂亮和dynamic(某种:今天的信息 – 昨天的信息)。 在我看来, Fragments让我们的生活更轻松:) 问题: 为什么我应该使用多个Activity ? 你能提供一个很好的例子,其中多个Activities的使用更有意义,而不是使用Fragments ? 有什么好的例子,你没有别的select,只能使用Activities ? 我认为大多数更大的框架,如地图 , YouTube和公司已经支持Fragments 。 所以我们不必依赖Activities 。 在使用Fragments情况下,处理NavigationBar , TabHosts , ViewPager […]

如何在对话框中保持沉浸模式?

当我的活动显示自定义对话框时,如何维护新的沉浸模式? 我使用这段代码来保持对话框中的沉浸模式,但是通过这个解决scheme,当我启动我的自定义对话框时,NavBar出现不到一秒钟,然后它就消失了。 这是一个video,更好地解释了这个问题(看看NavBar出现在屏幕的底部):http: //youtu.be/epnd5ghey8g 我如何避免这种行为? 码 我申请中所有活动的父亲: public abstract class ImmersiveActivity extends Activity { @SuppressLint("NewApi") private void disableImmersiveMode() { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_FULLSCREEN); } } @SuppressLint("NewApi") private void enableImmersiveMode() { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); } } /** * Set […]

以编程方式更新活动/服务/接收器的小部件

我知道这是可能的,但我无法find一种方法来触发从主要活动更新我的部件。 是不是有一些我可以播放的一般意图?

活动和上下文有什么区别?

活动和环境是相同的,还是有差异? 什么时候应该有一个方法传递一个Activity,当一个Context?

如何倾听PreferenceFragment中的偏好更改?

如上所述,我将PreferenceFragment子类化并在Activity中显示。 该文档解释了如何在此处侦听首选项更改,但仅限于PreferenceActivity的子类。 由于我没有这样做,我如何倾听偏好改变? 我试过在我的PreferenceFragment实现OnSharedPreferenceChangeListener,但它似乎并没有工作( onSharedPreferenceChanged似乎永远不会被调用)。 这是我的代码到目前为止: SettingsActivity.java public class SettingsActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Display the fragment as the main content. getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit(); } } SettingsFragment.java public class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener { public static final String KEY_PREF_EXERCISES = "pref_number_of_exercises"; @Override public void onCreate(Bundle savedInstanceState) { […]

如何传递一个包含对象列表的可放样对象?

我在下面创build了一个Parcelable对象,我的对象包含一个产品List 。 在我的构造函数中,如何处理为List重新创build我的Parcelable ? 我已经检查了所有可用的包裹方法,所有可用的方法是readArrayList(ClassLoader) 。 我不确定这是否是最好的方法,您的意见将真正赞赏。 public class Outfits implements Parcelable { private String url; private String name; private List<Product> products; public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getName() { return name; } public void setName(String name) { this.name = name; } public […]

runOnUiThread在片段中

我试图将一个活动转换为片段。 runOnUiThread上的错误标记。 过去: GoogleActivityV2从Activity扩展而来。 类ExecuteTask中的runOnUiThread。 类嵌套在活动上的ExecuteTask。 (运行正常)现在: GoogleActivityV2从Fragment扩展而来。 类ExecuteTask中的runOnUiThread。 类嵌套在活动上的ExecuteTask。 (runOnUiThread错误) 这是我的代码 public class GoogleActivityV2 extends SherlockMapFragment implements OnMapClickListener , OnMapLongClickListener , OnCameraChangeListener , TextWatcher { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View rootView = inflater.inflate(R.layout.activity_googlev2, container, false); Init(); adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_dropdown_item_1line); textView = (AutoCompleteTextView) getView().findViewById(R.id.autoCompleteTextView1); return rootView; } public […]

Android – 活动构造与onCreate

我知道Android的Activities有特定的生命周期,应该重写onCreate并用于初始化,但是在构造函数中究竟发生了什么? 是否有任何情况下,你可以/应该重写Activity构造函数,或者你应该永远不要碰它? 我假设不应该使用构造函数,因为对Activities引用没有完全清理(从而阻碍垃圾收集器),并且onDestroy就是为此目的而存在的。 它是否正确?