java - 从外部类访问片段布局中的视图
问题描述
我正在尝试TextView
从外部班级访问 a 。TextView
是由 alayout
膨胀的 a 的一部分fragment
。我如何实现这一目标?我无法引用该片段,因为我有 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
}
解决方案
通过提供一个简单的回调。
为此,在您的适配器中编写一个简单的接口
public interface OnDataChangeListener{
public void onDataChanged(String value);
}
并为侦听器添加一个设置器(也在适配器中)
OnDataChangeListener mOnDataChangeListener;
public void setOnDataChangeListener(OnDataChangeListener onDataChangeListener){
mOnDataChangeListener = onDataChangeListener;
}
现在将附加代码添加到 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);
}
});
}
推荐阅读
- google-chrome - 使用 Tomcat 时,是否可以自动重新加载客户端文件(js、css、html)而无需在 Google Chrome 中手动刷新页面?
- python - 如何在 Python 中指定函数的输入类型?
- python - 将嵌套字典转换为 json
- flutter - 未处理的异常:“String”类型不是“Uri”类型的子类型
- python - 来自 url 的 Pandas read_csv 返回更少的行数
- .htaccess - 如何通过将显示语言添加为子文件夹在 htaccess 中创建多语言 url
- php - 在 laravel 中找不到类文件?
- flutter - 订阅状态没有从一个屏幕传递到另一个“inAppPurchase”
- android - Android:从片段更新活动中底部导航视图的徽章计数
- android - 如何在我的 recyclerview 中使用 cardview 设置 onclick 侦听器,并在我单击 recyclerview 时从 firebase 数据库中检索数据?