【发布时间】:2017-03-06 17:18:27
【问题描述】:
所以我有一个带有 TabLayout 的应用程序。在那里,我创建了 2 个选项卡(片段)。我的第一个片段是 OngletCours,第二个片段是 OngletNotes。
我在第一个选项卡/片段中有一个 ListView。我想将我在该 ListView 中单击的项目转移到第二个 Fragment 到 TextView。
我已经尝试了一些方法,但在第 23 行出现 NullPointerException:
03-06 09:38:32.874 23677-23677/com.example.dasilvadd.students E/AndroidRuntime: 致命异常: main java.lang.NullPointerException 在 com.example.dasilvadd.students.OngletNotes.onCreateView(OngletNotes.java:23)
这是我的第一个标签 OngletCours 中的代码(仅限 setOnItemClickListener):
final ListView l1 = (ListView) rootView.findViewById(R.id.ListCours);
l1.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
OngletNotes fragment = ((Onglets)getActivity()).getOngletNotes ();
if(fragment != null) {
l1.getItemAtPosition(i);
//Put the value
OngletNotes onotes = new OngletNotes();
Bundle args = new Bundle();
args.putString("Item","l1.getItemAtPosition(i)");
onotes.setArguments(args);
getFragmentManager().beginTransaction().add(R.id.container, onotes).commit();
}
((Onglets)getActivity()).goToFragment(1);
}
});
return rootView;
}
这是我的第二个标签 OngletNotes 中的代码:
public class OngletNotes extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.ongletnotes, container, false);
//where i want to insert the selectedItem
TextView Cours = (TextView)rootView.findViewById(R.id.TVCours);
//Retrieve the value
//THE ERROR IS HERE !
String cours = getArguments().getString("Item");
Cours.setText(cours);
return rootView;
}
public static OngletNotes newInstance() {
OngletNotes fragment = new OngletNotes();
return fragment;
}
所以,我不知道如何将所选项目转移到第二个选项卡中。 我是否必须在名为 Onglets 的 TabbedActivity 中创建方法?请告诉我您是否也需要该课程的代码。
提前谢谢你。
【问题讨论】:
标签: java android listview android-fragments android-tablayout