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
是一个片段吗,没有任何参数,并且由于您描述的问题而失败?你只需要稍后用一个带参数的片段来替换它。我发布了我的活动布局的代码。是的,它是一个碎片。我必须在片段标签中添加一些参数吗?好的,我试试。谢谢:)好的,我试试。谢谢:)