gpt4 book ai didi

java - getArguments() 返回 null

转载 作者:行者123 更新时间:2023-11-29 03:07:50 25 4
gpt4 key购买 nike

我在使用 fragment 时遇到问题。事实上,我正在尝试将一些参数从我的 Activity 传递给 Fragment。问题是我的 getArguments() 调用总是返回 null。这是我的代码:

相册用户.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();

}
}

相册.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 相册.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" />

实例化您的 Album fragment ,不带任何参数。这就是 getArguments() 返回 null 的原因。

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

关于java - getArguments() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31168549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com