Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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
Android 使用片段xml文件中的视图_Android_Android Fragments - Fatal编程技术网

Android 使用片段xml文件中的视图

Android 使用片段xml文件中的视图,android,android-fragments,Android,Android Fragments,我有一个包含多个选项卡的活动(使用“固定选项卡+滑动”样式)。每个选项卡布局都定义为一个片段xml文件 例如,我的活动称为ModifyCustActivity。这使用了一个几乎为空的xml文件,名为activity\u modify\u cust.xml。此页面上的每个选项卡都由各种xml文件表示,如fragment\u modify\u cust\u basic和fragment\u modify\u cust\u address等。每个片段xml文件都包含EditTexts、Spinners

我有一个包含多个选项卡的活动(使用“固定选项卡+滑动”样式)。每个选项卡布局都定义为一个片段xml文件

例如,我的活动称为
ModifyCustActivity
。这使用了一个几乎为空的xml文件,名为
activity\u modify\u cust.xml
。此页面上的每个选项卡都由各种xml文件表示,如
fragment\u modify\u cust\u basic
fragment\u modify\u cust\u address
等。每个片段xml文件都包含
EditText
s、
Spinner
s等

当活动开始时,我需要能够从活动代码访问这些视图,因为我需要预先填充它们,并在编辑它们后获得它们的结果。然而,由于这些视图存在于片段xml文件中,我似乎无法在代码中访问它们。有没有办法访问片段xml文件中包含的视图

有没有办法访问片段xml文件中包含的视图

是的,但是您的片段应该在XML布局文件中声明,这似乎就是您的情况

例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              ...">

    <fragment
            android:name="com.example.MyFragment"
            android:id="@+id/my_fragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

</LinearLayout>
然后使用
片段
实例,您可以进一步访问视图,例如通过从片段调用公共方法来更新某些特定视图

更新:
假设您有一个
TextView
,它出现在片段的布局中,并且需要从活动中更新

让这成为片段类:

public class MyFragment extends Fragment{

    private TextView textView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view =  inflater.inflate(R.layout.fragment_layout, null, false);
        textView = (TextView)view.findViewById(R.id.textView);
        return view;
    }

    public void updateTextView(String text){
        textView.setText(text);
    }
}
然后通过在活动中调用
updateTextView()
方法来更新
TextView

fragment.updateTextView("text");

您可以从“活动”访问片段视图。如果要将数据从片段发送到另一个片段。您的发送者片段必须与活动通信,并且您的活动可以操纵其他片段中的视图


谢谢你,安迪。实际上我刚刚注意到了。很抱歉我的愚蠢。还有一件事,你能稍微扩展一下代码,给出一个例子,说明我如何更详细地引用片段中的视图吗?我有点困了:(谢谢你,安迪。显然我需要学习更多关于碎片的知识,因为这让我很困惑!干杯。
fragment.updateTextView("text");