我是android的新手,我写了一个简单的应用来学习fragments
。我创建了一个文本视图:
<TextView
android:id="@+id/behzad"
android:text="behzad"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
在片段中我写了这个简单的方法:
public void setTest(){
TextView text=(TextView) FiveView.findViewById(R.id.behzad);
text.setText("hahaha");
Toast.makeText(getActivity().getBaseContext(), "ok", Toast.LENGTH_SHORT).show();
}
我在活动中调用该方法:
Fragment frag=adapter.getItem(4);
((FiveFragment)frag).setTest();
我从toast收到ok
消息,但片段的文本视图未显示hahaha
为什么文本视图的值没有改变?这是我的code
答案 0 :(得分:0)
在代码中添加notifyDataSetChanged():
Fragment frag=adapter.getItem(4);
((FiveFragment)frag).setTest();
adapter.notifyDataSetChanged();
答案 1 :(得分:0)
Fragment fragment = adapter.getItem(viewPager.getCurrentItem());
if (fragment instanceof FiveFragment) {
fragment.setTest();
}
答案 2 :(得分:0)
将TextView对象设为静态,然后重试。
答案 3 :(得分:0)
在你的片段中我希望你在你的片段的onCreateView方法中调用你的setText()方法
在您的活动中
Your_Button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Your_Fragment fragmentObject = new Fragment();
fragmentObject.setTest();
}
}
我希望这会起作用
答案 4 :(得分:0)
清除setTest()
中的onCreate()
方法并将其移至onCreateView()
。