Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 更改ViewPager中片段的文本_Java_Android_Android Fragments - Fatal编程技术网

Java 更改ViewPager中片段的文本

Java 更改ViewPager中片段的文本,java,android,android-fragments,Java,Android,Android Fragments,这是我在ViewPager中更改片段的代码。片段只有一个文本视图。基本上,我只是在慢慢地浏览我名字中的字母表。因此,根据索引,我必须在片段的TextView中设置文本 在上面的代码中,程序会出现一个NullPointerException,因为布局还没有膨胀,所以我猜想 更改片段内容的正确方法是什么是否有回调方法让我知道它已变为可见?没有回调。您可以在创建片段时将文本作为参数发送到片段,并在片段内部设置文本 比如: @Override public Fragment getItem(int po

这是我在
ViewPager
中更改片段的代码。片段只有一个文本视图。基本上,我只是在慢慢地浏览我名字中的字母表。因此,根据索引,我必须在片段的
TextView
中设置文本

在上面的代码中,程序会出现一个
NullPointerException
,因为布局还没有膨胀,所以我猜想


更改
片段内容的正确方法是什么是否有回调方法让我知道它已变为可见?

没有回调。您可以在创建片段时将文本作为参数发送到片段,并在片段内部设置文本

比如:

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = new CharacterFragment();
    View rootView = fragment.getView();
    TextView character = (TextView) rootView.findViewById(R.id.character);
    character.setText(name[position]);
    return fragment;
}  
您的
CharacterFragment.newInstance(字符串名称)
方法如下所示:

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = CharacterFragment.newInstance(name[position]);
    View rootView = fragment.getView();
    return fragment;
}

然后,在
onCreateView()
中,通过
getArguments()
方法获得参数,并获得带有键
NAME\u ARG的字符串。而你拥有它!有意义吗?

没有回调。您可以在创建片段时将文本作为参数发送到片段,并在片段内部设置文本

比如:

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = new CharacterFragment();
    View rootView = fragment.getView();
    TextView character = (TextView) rootView.findViewById(R.id.character);
    character.setText(name[position]);
    return fragment;
}  
您的
CharacterFragment.newInstance(字符串名称)
方法如下所示:

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = CharacterFragment.newInstance(name[position]);
    View rootView = fragment.getView();
    return fragment;
}

然后,在
onCreateView()
中,通过
getArguments()
方法获得参数,并获得带有键
NAME\u ARG的字符串。而你拥有它!有意义吗?

没有回调。您可以在创建片段时将文本作为参数发送到片段,并在片段内部设置文本

比如:

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = new CharacterFragment();
    View rootView = fragment.getView();
    TextView character = (TextView) rootView.findViewById(R.id.character);
    character.setText(name[position]);
    return fragment;
}  
您的
CharacterFragment.newInstance(字符串名称)
方法如下所示:

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = CharacterFragment.newInstance(name[position]);
    View rootView = fragment.getView();
    return fragment;
}

然后,在
onCreateView()
中,通过
getArguments()
方法获得参数,并获得带有键
NAME\u ARG的字符串。而你拥有它!有意义吗?

没有回调。您可以在创建片段时将文本作为参数发送到片段,并在片段内部设置文本

比如:

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = new CharacterFragment();
    View rootView = fragment.getView();
    TextView character = (TextView) rootView.findViewById(R.id.character);
    character.setText(name[position]);
    return fragment;
}  
您的
CharacterFragment.newInstance(字符串名称)
方法如下所示:

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = CharacterFragment.newInstance(name[position]);
    View rootView = fragment.getView();
    return fragment;
}

然后,在
onCreateView()
中,通过
getArguments()
方法获得参数,并获得带有键
NAME\u ARG的字符串。而你拥有它!有意义吗?

这不是使用
getView()
的正确方法。实现你想要的东西的方法有点不同。为此,应将字符串(在本例中为
name[position]
)传递给该方法但是您应该记住,片段不应该用它们的构造函数实例化,而是创建一个静态方法,我将向您展示:

public static CharacterFragment.newInstance(String name) {
    CharacterFragment fragment = new CharacterFragment();
    Bundle args = new Bundle();
    args.put("NAME_ARG", name);
    fragment.setArguments(args);
    return fragment;
}
然后,在
CharacterFragment.java

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = CharacterFragment.newInstance(name[position]);
    return fragment;
}  

这不是使用
getView()
的正确方法。实现你想要的东西的方法有点不同。为此,应将字符串(在本例中为
name[position]
)传递给该方法但是您应该记住,片段不应该用它们的构造函数实例化,而是创建一个静态方法,我将向您展示:

public static CharacterFragment.newInstance(String name) {
    CharacterFragment fragment = new CharacterFragment();
    Bundle args = new Bundle();
    args.put("NAME_ARG", name);
    fragment.setArguments(args);
    return fragment;
}
然后,在
CharacterFragment.java

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = CharacterFragment.newInstance(name[position]);
    return fragment;
}  

这不是使用
getView()
的正确方法。实现你想要的东西的方法有点不同。为此,应将字符串(在本例中为
name[position]
)传递给该方法但是您应该记住,片段不应该用它们的构造函数实例化,而是创建一个静态方法,我将向您展示:

public static CharacterFragment.newInstance(String name) {
    CharacterFragment fragment = new CharacterFragment();
    Bundle args = new Bundle();
    args.put("NAME_ARG", name);
    fragment.setArguments(args);
    return fragment;
}
然后,在
CharacterFragment.java

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = CharacterFragment.newInstance(name[position]);
    return fragment;
}  

这不是使用
getView()
的正确方法。实现你想要的东西的方法有点不同。为此,应将字符串(在本例中为
name[position]
)传递给该方法但是您应该记住,片段不应该用它们的构造函数实例化,而是创建一个静态方法,我将向您展示:

public static CharacterFragment.newInstance(String name) {
    CharacterFragment fragment = new CharacterFragment();
    Bundle args = new Bundle();
    args.put("NAME_ARG", name);
    fragment.setArguments(args);
    return fragment;
}
然后,在
CharacterFragment.java

@Override
public Fragment getItem(int position) {
    CharacterFragment fragment = CharacterFragment.newInstance(name[position]);
    return fragment;
}  


问题是对
TextView
的引用总是返回为空。我尝试在片段的
onResume()
中使用
getView().findViewById(R.id.myTextView)
,但返回值始终为空。编辑答案以提供更多详细信息。其思想是在创建片段时将字符串作为参数发送,然后在
onCreateView
中从参数中获取字符串并将其设置为TextView.Works!一个简单的问题:如何使文本足够大,以便无论屏幕大小如何,每个字符都能填满屏幕?:)我不明白。。。你想让每个片段填满屏幕,只包含一个字母吗?是的。基本上,我只是举一个简单的例子来学习
ViewPager
。仅此而已。问题是对
TextView
的引用总是返回为空。我尝试在片段的
onResume()
中使用
getView().findViewById(R.id.myTextView)
,但返回值始终为空。编辑答案以提供更多详细信息。其思想是在创建片段时将字符串作为参数发送,然后在
onCreateView
中从参数中获取字符串并将其设置为TextView.Works!一个简单的问题:如何使文本足够大,以便无论屏幕大小如何,每个字符都能填满屏幕?:)我不明白。。。你想让每个片段填满屏幕,只包含一个字母吗?是的。基本上,我只是举一个简单的例子来学习
ViewPager
。仅此而已。问题是对
TextView
的引用总是返回为空。我尝试使用