Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java getArguments()返回null_Java_Android_Arguments_Bundle - Fatal编程技术网

Java getArguments()返回null

Java getArguments()返回null,java,android,arguments,bundle,Java,Android,Arguments,Bundle,我在使用碎片时遇到问题。事实上,我正试图将一些参数传递给我活动中的一个片段。问题是我的getArguments()调用总是返回null。这是我的密码: AlbumUser.java: public class AlbumUser extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceS

我在使用碎片时遇到问题。事实上,我正试图将一些参数传递给我活动中的一个片段。问题是我的
getArguments()
调用总是返回null。这是我的密码:

AlbumUser.java:

public class AlbumUser extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_album_user);

        String albumId = getIntent().getStringExtra("albumId");
        String albumName = getIntent().getStringExtra("albumName");
        String albumAuthor = getIntent().getStringExtra("albumAuthor");
        String coverUrl = getIntent().getStringExtra("coverUrl");

        getFragmentManager().beginTransaction().replace(R.id.fragmentAlbum, Album.newInstance(albumId,albumName,albumAuthor,coverUrl)).commit();

    }
}
Album.java:

public class Album extends Fragment {

    private String albumId;
    private String albumName;
    private String albumAuthor;
    private String coverUrl;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        super.onCreateView(inflater, container, savedInstanceState);
        view = inflater.inflate(R.layout.activity_album, container, false);
        Bundle args = getArguments();
        albumId = args.getString("albumId");
        albumName = args.getString("albumName");
        albumAuthor = args.getString("albumAuthor");
        coverUrl = args.getString("coverUrl");
        return view;
    )

    public static Album newInstance(final String albumId, final String albumName, final String albumAuthor, final String coverUrl) {
        final Album album = new Album();
        final Bundle bundle = new Bundle();
        bundle.putString("albumId", albumId);
        bundle.putString("albumName", albumName);
        bundle.putString("albumAuthor", albumAuthor);
        bundle.putString("coverUrl", coverUrl);
        album.setArguments(bundle);
        return album;
    }
}
activity_album.xml:

<android.support.v4.widget.DrawerLayout
    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:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity">

    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <fragment
            android:id="@+id/fragmentAlbum"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            class="com.example.jeff.facebookphotocast.Album" />

        <include layout="@layout/toolbar"/>

    </FrameLayout>

</android.support.v4.widget.DrawerLayout>

请帮帮我,我要死了^^ 谢谢:)

布局XML

<fragment
        android:id="@+id/fragmentAlbum"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        class="com.example.jeff.facebookphotocast.Album" />

实例化您的
相册
片段,不带任何参数。这就是为什么
getArguments()
返回null

如果希望始终为片段提供一些参数,请将布局的这部分替换为空的
FrameLayout
容器,并使用
FragmentTransaction\add()
将带有参数的片段放入容器中。

布局XML

<fragment
        android:id="@+id/fragmentAlbum"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        class="com.example.jeff.facebookphotocast.Album" />

实例化您的
相册
片段,不带任何参数。这就是为什么
getArguments()
返回null


如果您希望始终为片段提供一些参数,请将布局的这部分替换为空的
FrameLayout
容器,并使用
FragmentTransaction#add()
将带有参数的片段放入容器中。

您发布的代码似乎已损坏;我能看到的
getArguments()
的唯一调用是
Album
类中的
onCreateView
方法,但该值没有在任何地方使用。此外,下面的行必须以分号结尾。您能更详细地解释一下您是如何使用
getArguments()
的结果的吗?好的,我编辑了代码。它没有坏,我只是想展示代码中有用的部分。我要做的是用我活动中的字符串显示片段中的祝酒词。Toast显示在onActivityCreated()方法中。但是由于某些原因,我在片段中得到的包是空的。。。感谢您的帮助:)在您的布局中,
R.id.fragmentAlbum
是一个片段吗,没有任何参数,并且由于您描述的问题而失败?你只需要稍后用一个带参数的片段来替换它。我发布了我的活动布局的代码。是的,它是一个碎片。我必须在我的片段标签中添加一些参数吗?你发布的代码似乎被破坏了;我能看到的
getArguments()
的唯一调用是
Album
类中的
onCreateView
方法,但该值没有在任何地方使用。此外,下面的行必须以分号结尾。您能更详细地解释一下您是如何使用
getArguments()
的结果的吗?好的,我编辑了代码。它没有坏,我只是想展示代码中有用的部分。我要做的是用我活动中的字符串显示片段中的祝酒词。Toast显示在onActivityCreated()方法中。但是由于某些原因,我在片段中得到的包是空的。。。感谢您的帮助:)在您的布局中,
R.id.fragmentAlbum
是一个片段吗,没有任何参数,并且由于您描述的问题而失败?你只需要稍后用一个带参数的片段来替换它。我发布了我的活动布局的代码。是的,它是一个碎片。我必须在片段标签中添加一些参数吗?好的,我试试。谢谢:)好的,我试试。谢谢:)