Java 从类外部访问片段布局中的视图

Java 从类外部访问片段布局中的视图,java,android,android-fragments,Java,Android,Android Fragments,我正在尝试从外部类访问TextView。TextView是由片段膨胀的布局的一部分。我如何做到这一点?我不能引用这个片段,因为我还有3个不同布局的片段 编辑: 我有一个片段,我想在其中访问totalTxt: public class FragmentCart extends Fragment { private TextView totalTxt; private ListView itemList; public View onCreateView(LayoutInf

我正在尝试从外部类访问
TextView
TextView
是由
片段膨胀的
布局的一部分。我如何做到这一点?我不能引用这个片段,因为我还有3个不同布局的片段

编辑:

我有一个片段,我想在其中访问totalTxt:

public class FragmentCart extends Fragment {
    private TextView totalTxt;
    private ListView itemList;

    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_cart, container, false);
        itemList = (ListView)view.findViewById(R.id.itemList);
        itemList.setAdapter(MainActivity.cart);
        return view;
    }
我有这门课

    public class someClass extends BaseAdapter {
         //everytime the data here is changed, I would like to update 
           the value of the totalTxt above from this class
    }
试试这个:

1.使用Java接口

public interface MyListener {
    // you can define any parameter as per your requirement
    public void callback(View view, String result);
}
2.在您的fragment类中:

 public class MyActivity extends fragment implements MyListener {
   @override        
   public void onCreate(){
        MyButton m = new MyButton(this);
   }

    // method is invoked when MyButton is clicked
    @override
    public void callback(View view, String result) {   
        // do your stuff here
    }
}
3.在适配器类中:

public class someClass extends BaseAdapter implements MyListener {
         //everytime the data here is changed, I would like to update 
           the value of the totalTxt above from this class
    }
这里是2和3,或者可选的,您可以在其中共享数据,可以是fragment,也可以是baseAdapter。这是您的选择。我给出了这两个示例。当值更新时,让我们通过接口进行尝试


让我知道这行不行

通过提供一个简单的回调

为此,请在适配器中编写一个简单的接口

public interface OnDataChangeListener{
    public void onDataChanged(String value);
}
并为侦听器添加一个setter(也在适配器中)

现在向baseadapter中的以下块添加其他代码

private void conditionOfValuechanged() {
    ...
    if(mOnDataChangeListener != null){
        mOnDataChangeListener.onDataChanged(data.size());
    }
}
在活动中,您需要注册侦听器

protected void onCreate(Bundle savedInstanceState) {
    ...
    adapter.setOnDataChangeListener(new Sold_item_adaptor.OnDataChangeListener(){
        public void onDataChanged(String value){
            //do whatever here
             txtTotal.setText(value);
        }
    });
}

请简要解释一下问题,或者在同一活动中发布您的代码三个片段?是的,在同一活动中发布三个片段好的,在哪里使用片段中的字符串?我的意思是使用从一个片段到另一个片段的字符串?您是否使用textview设置一些字符串格式?否。当数据更改时,我需要自动更新totalTxt。我需要访问视图totalTxt,而不是值。对不起,您把我弄丢了。我正在从适配器获取一个值,然后将该值设置为txtTotal抱歉!但是我会尽力帮助你,你能解释一下你在适配器中得到的值吗,比如说“你好”&从适配器本身,你需要访问[片段内部]的textview并设置值
protected void onCreate(Bundle savedInstanceState) {
    ...
    adapter.setOnDataChangeListener(new Sold_item_adaptor.OnDataChangeListener(){
        public void onDataChanged(String value){
            //do whatever here
             txtTotal.setText(value);
        }
    });
}