我已经尝试了一段时间(同样,在这里搜索),当在其他片段中按下按钮时,它可以帮助我刷新MainFragment中的listView。Sommeone可以解释一下如何使其工作吗?
这是带有函数的MainFragment(我不包括其他函数,因为我看不到它们如何起作用):
public class MainFragment extends Fragment {
public void otherList() {
SQLite db = new SQLite(getActivity());
db.open();
Calendar sCalendar = Calendar.getInstance();
String day = sCalendar.getDisplayName(Calendar.DAY_OF_WEEK,
Calendar.LONG, Locale.ENGLISH);
Cursor c = db.getAllRecords(day);
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
arrayOfBars.clear();
if (c.moveToFirst()) {
do {
String country = c.getString(0);
String city = c.getString(1);
String bar = c.getString(2);
String timeStart = c.getString(3);
String[] h = timeStart.split(":");
int times = Integer.parseInt(h[0]);
String timeEnd = c.getString(4);
String[] h2 = timeEnd.split(":");
int timee = Integer.parseInt(h2[0]);
String placeLaLo = c.getString(5);
String description = c.getString(6);
String likes = c.getString(7);
String offer = c.getString(8);
if (hour < (times + 1) || hour < (timee)) {
getPrefs = PreferenceManager
.getDefaultSharedPreferences(MainFragment.this
.getActivity());
boolean lay = getPrefs.getBoolean("boolean", false);
if (lay == true) {
while (times < timee) {
timeStart = times + ":" + h[1];
times++;
timeEnd = times + ":" + h2[1];
arrayOfBars.add(new BarObject(country, city, bar,
timeStart, timeEnd, placeLaLo, description,
likes, offer, bar));
}
} else {
arrayOfBars.add(new BarObject(country, city, bar,
timeStart, timeEnd, placeLaLo, description,
likes, offer, bar));
}
}
} while (c.moveToNext());
Collections.sort(arrayOfBars, new BarObject.CompST());
lv2.setAdapter(null);
adapter = new BarAdapter(getActivity(), arrayOfBars);
lv2.setAdapter(adapter);
} else {
Toast.makeText(getActivity(), "No database found",
Toast.LENGTH_LONG).show();
}
db.close();
}
}
这是另一个片段:
public class SocialMedia extends Fragment {
ImageButton facebook, twitter, layoutS;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.social_media, container, false);
layoutS = (ImageButton) view.findViewById(R.id.ibLayout);
layoutS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences getPrefs = PreferenceManager
.getDefaultSharedPreferences(SocialMedia.this
.getActivity());
boolean lay = getPrefs.getBoolean("boolean", false);
SharedPreferences.Editor e = getPrefs.edit();
lay = !lay;
e.putBoolean("boolean", lay);
e.commit();
//Here I want to call otherList() from MainFragment
}
});
return view;
}
}
FragmentManager fm = getFragmentManager();
MainFragment fragm = (MainFragment)fm.findFragmentById(R.id.main_fragment);
fragm.otherList();
这段代码最适合我。似乎很容易
知道TargetFragment现在已被弃用,如何从DialogFragment调用片段的方法? 过去,我可以这样做: 父级碎片 对话框碎片 这不再可能,因为目标碎片现已弃用。 我读到可以使用setFragmentResultListener()传递变量,但是如何从DialogFragment调用ParentFragment.myMethod()方法呢?
问题内容: 我想从fragmentA调用FragmentB(Class)的方法,我试图通过在fragmentA(class)中创建fragmentb的对象来尝试,但是在这里它不起作用是该类中fragmentA的代码,我有一个方法可以通过FragmentB类的方法 我想称这个为fragmentB的方法 我尝试通过fragmentA方法编写此代码,但出现错误 问题答案: 试试这个解决方案:
先生/女士,我想使用android JAVA将一个片段回调到另一个片段。我试图找到问题,但没有找到解决方案。若我使用接口,它会向活动发送回调响应,这是我不想要的。非常感谢。
在我的中有5个片段(home、settings、newPost、notifications和profile)。 在中,我有一个,其中包含许多post视图,每个post都包含一个“open”按钮,该按钮应该打开一个。问题是,我只能在类和populateItemRows()方法中使用,所以当我不能使用... RecycerViewAdapter:
这是我完整的logcat: 在Android.support.v4.app.backStackRecord.doaddop(backStackRecord.java:414)在Android.support.v4.app.backStackRecord.replace(backStackRecord.java:449)在Android.support.v4.app.backStackRecord.
我试着从一个片段到主要片段。编译器不喜欢我的代码,但我不确定是什么问题。转换片段的最佳实践是什么? //这是我要导航到的主片段的xml 2019-07-12 17:49:45.091 959 4-9594/com.example.cribb E/AndroidRuntime:致命异常:主进程:com.example.cribb,PID:9594 Android.content.res.resour