【发布时间】:2017-05-12 15:29:45
【问题描述】:
我有一个带有 3 个选项卡的 TabbedActivity (OngletCours)。每个选项卡都有一个 listView,当我单击它时,会打开一个 AlertDialog。其中一个选项是转到另一个有 2 个选项卡的 TabbedActivity(OngletJalonNotes)。
我在我的应用程序中使用数据库。我希望能够根据我在第一个 TtabbedActivity 中单击的项目创建一些“Jalon”(我在 TabbedActivity 中单击的项目的 id 将是我的数据库表的 FK)。我想将它们显示在一个列表视图
我正在这样做:在第一个 TabbedActiviy 的片段上,我使用了 Bundle 和 FragmentManager 来发送项目的 ID,并且在片段“Jalon”中我试图获取我传递的值,但是我得到一个 NullPointerException。我怎样才能解决这个问题 ?我确实需要在第二个片段中获取 ID,以便 Ii 可以在方法中使用它。
这是 AlertDialog 的正按钮的 firstFragment 'CoursActuel' 代码:
.setPositiveButton("Ajouter des jalons à ce cours", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
int idcours = cursor_modifier.getInt(0);
OngletJalonsAfficher onglet = new OngletJalonsAfficher();
Bundle args = new Bundle();
args.putInt("idcoursfk",idcours);
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
onglet.setArguments(args);
fragmentTransaction.replace(R.id.container,onglet,"");
fragmentTransaction.commit();
}
});
在片段“OngletJalonsAfficher”中:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.activity_onglet_jalon_afficher, container, false);
//NULLPOINTEREXCEPTION HERE
int idcours = getArguments().getInt("idcoursfk");
final ListView lvJalonsPasse;
lvJalonsPasse =(ListView)rootView.findViewById(R.id.ListJalonsPasse);
final SimpleCursorAdapter adapter;
final DatabaseHelper dbhelper = new DatabaseHelper(getActivity());
Cursor cursor = dbhelper.getAllJalonsPasse(//i need to put the value 'idcours' here...);
String[] from = { "date_jalon", "designation_jalon" };
int[] to = { R.id.text_branche_cours, R.id.text_designation };
adapter = new SimpleCursorAdapter(getContext(), R.layout.list_row, cursor, from, to, 0);
lvJalonsPasse.setAdapter(adapter);
adapter.notifyDataSetChanged();
return rootView;
}
感谢你们以后的帮助!如果您需要更多代码,请告诉我!
【问题讨论】:
标签: android android-fragments fragmentmanager