我找不到如何从< code>Activity更改fragment的< code>textview。我有4个文件:
MainActivity.java
activity_main.xml
FragmentClass.java
frag_class.xml
frag_class.xml有textView,我想更改MainActivity.java的文本。FragmentClass扩展了片段,此片段显示在MainActivity中,FragmentClass具有:
public void changeText(String text){
TextView t = (TextView) this.getView().findViewById(R.id.tView);
t.setText(text);
}
在MainActivity中,我尝试了这个:
FragmentClass fc = new FragmentClass();
fc.changeText("some text");
但可悲的是,这段代码给了我NullPointerException at fc.changeText(“some text”);
我还尝试使用以下命令直接从 MainActivity 更改文本:
TextView t = (TextView) this.getView().findViewById(R.id.tView);
t.setText(text);
失败了。
[编辑]完整代码在这里
@Lalit的回答是正确的,但我发现您不需要创建像fragment_obj.updateTextView()这样的函数;。我将所有视图设置为类级对象,并能够直接更新textview。
fragmentRegister.textViewLanguage.setText("hello mister how do you do");
注意:如果您需要执行多个操作,那么拥有一个函数是最好的选择。
从< code >活动到< code >片段按< code >片段事务:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public static void changeFragmentTextView(String s) {
Fragment frag = getFragmentManager().findFragmentById(R.id.yourFragment);
((TextView) frag.getView().findViewById(R.id.textView)).setText(s);
}
}
您可以使用以下命令查找 Fragment 的实例:
对于支持库,
YourFragment fragment_obj = (YourFragment)getSupportFragmentManager().
findFragmentById(R.id.fragment_id);
别的
YourFragment fragment_obj = (YourFragment)getFragmentManager().
findFragmentById(R.id.fragment_id);
然后在片段中创建一个更新< code>TextView的方法,并使用< code>fragment_obj调用该方法,
fragment_obj.updateTextView();
首先,我仍然是Android开发的新手,我以前在这里问过类似的问题,如何让我的片段利用我的活动数据?以及如何将数据从活动发送到片段?(Android)但似乎大多数人都不太明白我的意思,所以让我来解释一下。假设我有一个文本视图: 和一个按钮: 在我的第一个片段layout.xml中,然后我想从我的主活动中调用它们,即以获取数据,即从天气API和。Android Studio不允许您这样使用它们,所以
公共视图onCreateView(LayoutInflater inflater、ViewGroup容器、Bundle savedInstanceState){ 但是它崩溃了,错误日志如下所示: 是 我已经在中为添加了init,如下所示: 我的场景是: Activity1-->Activity1-->片段 Splash的XML如下所示: 我有两项活动。片段由activity2调用,我想改变Acti
我在动态应用程序中使用片段,其中User.java文件包含值,而< code>TabbedActivity.java文件包含三个片段。我想将文本设置为< code > profile rgament . Java 中的< code>TextView。因此,我在< code > fragment _ profile . XML 中创建了一个< code>TextView,并使用以下代码从< code
我在中有一组选项卡,每个选项卡都包含自己的片段。当我尝试通过从该片段中启动一个新活动并使用方法时,我的应用程序强制关闭。 在四处寻找了一段时间后,我找到了一个名为startActivityFromFragment的方法的一两个引用,但在搜索了大约一个小时后,我找不到任何关于如何使用它或这是否是我应该使用的方法的解释或示例。 我想我要问的是,从一个活动启动一个新活动和从一个片段启动一个新活动之间是否
我刚开始学Android。我有一个活动类,我想把它重定向到导航栏的ViewPage中的一个片段?我尝试了很多方法,但都不奏效。我希望能帮上忙!!!我的代码:有一个mainactivity.java有一个ViewPager和BottomNavigationView ViewPageApdater类 和Activity类,但我遇到一个问题:java.lang.IllegalArgumentExcept
我有一个包含例如一个按钮的片段,我想允许包含该片段的活动更改此按钮视图,例如颜色和标题或src图像。最好的方法是什么? 更新:如果我不够清楚,很抱歉,但我希望活动可以随心所欲地更改整个视图,比如设置填充、颜色或任何东西。它将以编程方式创建视图,片段应该用新视图替换旧视图,并更改视图的ID,以便片段代码不受影响。如果我在片段中创建了获取这些视图的方法,那么主活动应该在什么时候调用它们?因为活动必须等