我有一个代码,用于在具有共享首选项的回收器视图中单击项目时打开活动。我正在尝试对片段做同样的事情。
这是带有活动的代码。
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch(position){
case 0: {
startActivity(new Intent(WeekActivity.this, DayDetail.class));
sharedPreferences.edit().putString(SEL_DAY, "Monday").apply();
break;
}
case 1: {
startActivity(new Intent(WeekActivity.this, DayDetail.class));
sharedPreferences.edit().putString(SEL_DAY, "Tuesday").apply();
break;
}
case 2: {
startActivity(new Intent(WeekActivity.this, DayDetail.class));
sharedPreferences.edit().putString(SEL_DAY, "Wednesday").apply();
break;
}
case 3: {
startActivity(new Intent(WeekActivity.this, DayDetail.class));
sharedPreferences.edit().putString(SEL_DAY, "Thursday").apply();
break;
}
case 4: {
startActivity(new Intent(WeekActivity.this, DayDetail.class));
sharedPreferences.edit().putString(SEL_DAY, "Friday").apply();
break;
}
case 5: {
startActivity(new Intent(WeekActivity.this, DayDetail.class));
sharedPreferences.edit().putString(SEL_DAY, "Saturday").apply();
break;
}
default:break;
}
}
});
我试过分片做
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Fragment selectedFragment = null;
switch (position) {
case 0: {
selectedFragment = Timetable.newInstance();
sharedPreferences.edit().putString(SEL_DAY, "Monday").apply();
break;
}
case 1: {
selectedFragment = Timetable.newInstance();
sharedPreferences.edit().putString(SEL_DAY, "Tuesday").apply();
break;
}
case 2: {
selectedFragment = Timetable.newInstance();
sharedPreferences.edit().putString(SEL_DAY, "Wednesday").apply();
break;
}
case 3: {
selectedFragment = Timetable.newInstance();
sharedPreferences.edit().putString(SEL_DAY, "Thursday").apply();
break;
}
case 4: {
selectedFragment = Timetable.newInstance();
sharedPreferences.edit().putString(SEL_DAY, "Friday").apply();
break;
}
case 5: {
selectedFragment = Timetable.newInstance();
sharedPreferences.edit().putString(SEL_DAY, "Saturday").apply();
break;
}
default:
break;
}
FragmentTransaction transaction = ((AppCompatActivity) getActivity()).getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.rel_layout, selectedFragment);
transaction.commit();
}
});
我哪里做错了?我应该做哪些改变?我没有错误。同时什么也没有发生。帮帮我 :)
尝试:
case 0: {
loadFragment(fragment);// method to load a fragment i.e
//(loadFragment(new MyFragment())
sharedPreferences.edit().putString(SEL_DAY, "Monday").apply();
break;
}
然后创建 loadFragment 函数,如:
private void loadFragment(Fragment fragment) {
// create a FragmentManager
FragmentManager fm = getFragmentManager();
// create a FragmentTransaction to begin the transaction and replace the Fragment
FragmentTransaction fragmentTransaction = fm.beginTransaction();
// replace the FrameLayout with new Fragment
fragmentTransaction.replace(R.id.YOUR_REPLACEMENT_LAYOUT, fragment);
// save the changes
fragmentTransaction.commit();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句