小编Jav*_*tar的帖子

onActivityCreated() 是否在 Fragment 中的 onViewCreated() 之后调用?

我有两个 ViewModel。一个仅在 Fragment 中使用,另一个是来自 Activity 的共享 ViewModel。

分段:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    viewModel = ViewModelProviders.of(this).get(FragmentViewModel.class);
    ...
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    activityViewModel = ViewModelProviders.of(getActivity()).get(ActivityViewModel.class);
}
Run Code Online (Sandbox Code Playgroud)

但是为了知道我是否可以使用活动的 ViewModel 中的内容,我需要知道 是否在onActivityCreated(...)之后调用,onViewCreated(...)以便我可以根据我在活动的 ViewModel 中拥有的数据在 Fragment ViewModel 中请求我的数据。

总结一下:

确定onActivityCreated(...)是在onViewCreated(...)完成后调用吗?

android android-lifecycle

8
推荐指数
1
解决办法
5767
查看次数

折叠工具栏 - 禁用触摸滚动

我想禁用折叠工具栏的触摸行为滚动.如果由RecyclerView(正在工作)触发,它应该只是折叠.我想为什么不只是禁用焦点... android:focusableInTouchMode="false" 但它不起作用.我可以改变layout_scrollFlags但是然后...我的问题是,有一个简单的解决方案吗?

XML:

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/mCollapsingToolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:minHeight="@dimen/header_size"
            android:fitsSystemWindows="true"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                ...
                app:layout_collapseMode="parallax"/>

            <android.support.v7.widget.Toolbar
                android:id="@+id/mToolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin" />

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <android.support.v7.widget.RecyclerView
        ...
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview android-collapsingtoolbarlayout

3
推荐指数
1
解决办法
4160
查看次数

Java-正则表达式替换前导零,但不是全部替换并保持减号

我正在寻找将字符串替换为以下(数字)格式的正则表达式:

输入示例:

00000
00440
  235
+3484
-0004
  -00
   +0
Run Code Online (Sandbox Code Playgroud)

需要的结果:

    0
  440
  235
 3484
   -4
    0
    0
Run Code Online (Sandbox Code Playgroud)

我试图修改以下内容...仅保留至少+和-并删除零,但我只是绕圈跑。可以帮我吗?

input.replaceAll("^(\\+?|-?)0+(?!)", "");
Run Code Online (Sandbox Code Playgroud)

PS:可以选择将+ 0 / -0显示为0,但这是一个加号。

java regex numbers

2
推荐指数
1
解决办法
591
查看次数

onActivityResult() 未在 onBackPressed() 上触发

当按下“返回”按钮时,我只想将对象信息从 Activity2 交换回 Activity1。 一切正常,除了在 Activity1onActivityResult(..)中永远不会被触发。因此我无法访问意图信息。有谁知道为什么?

我检查了这些答案,但它们不起作用:

按下后退按钮时 setResult 不起作用

按下时如何将数据从第二个活动传递到第一个活动?- 安卓

如何将值从一个活动传递到前一个活动

将数据发送到父活动 onBackPressed

我的代码(如果您需要更多,请告诉我):

AndroidManifest.xml:

        <activity
            android:name="com.example.Activity1"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name="com.example.Activity2"
            android:theme="@style/AppTheme.NoActionBar"
            android:screenOrientation="portrait">
        </activity>
Run Code Online (Sandbox Code Playgroud)

Activity1.java:

public class MainActivity extends AppCompatActivity {

    // other stuff...

    private void showActivity2(Test test) {
        Intent intent = new Intent(this, Activity2.class);
        intent.putExtra("test", test.getSerializableObject());
        startActivityForResult(intent, Activity.RESULT_OK);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode …
Run Code Online (Sandbox Code Playgroud)

android onactivityresult onbackpressed

2
推荐指数
1
解决办法
2342
查看次数