为什么我无法更改片段中的文本视图值?

时间:2017-07-05 12:50:16

标签: android android-fragments

我是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

5 个答案:

答案 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()