我正尝试通过单击按钮从片段启动youtubeplayer视图。
我收到的错误确实让我头疼了......
现在 - 我尝试过这种方法: 我单独想要启动YouTubePlayer View。 2.从片段我试图调用新意图(在#1中提到)从Button启动YouTubeplayerView 3.在片段中放置一个按钮
我的问题是我收到一个关于使用我编写的代码调用空引用的错误。
应用程序编译正常(应用程序的基础是基于导航抽屉的应用程序,因此每个选择产生一个片段)。但是当我选择带有上述编码方法的选项时,会出现此错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
at blackstone.software.sunnahboxtvmenu.AlNabawiFragment.onCreate(AlNabawiFragment.java:62).
它指出这行代码是问题的根源:
btnNabawiLive = (Button) getView().findViewById(R.id.btnNabawiLive);
这里是片段代码:
public class AlNabawiFragment extends Fragment implements View.OnClickListener {
public AlNabawiFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_al_nabawi, container, false);
TextView text = (TextView) rootView.findViewById(R.id.nababwitext);
//text.setText("your text!");
InputStream is = getResources().openRawResource(R.raw.nabawi);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
String entireFile = "";
try {
while((line = br.readLine()) != null) { // <--------- place readLine() inside loop
entireFile += (line + "\n"); // <---------- add each line to entireFile
}
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//TextView text = null;
//text.setText(entireFile); // <------- assign entireFile to TextView
//assert text != null;
if (text != null) {
text.setText(entireFile);
}
return rootView;
}
Button btnNabawiLive;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.fragment_al_nabawi);
btnNabawiLive = (Button) getView().findViewById(R.id.btnNabawiLive);
btnNabawiLive.setOnClickListener(this);
}
@Override
public void onClick(View view) {
//Intent inent = new Intent(this, NabawiVideo.class);
Intent inent = new Intent(getActivity(), NabawiVideo.class);
// calling an activity using <intent-filter> action name
// Intent inent = new Intent("com.hmkcode.android.ANOTHER_ACTIVITY");
startActivity(inent);
}
/* public void onClick (View v) {
Intent intent = new Intent(getActivity(), NabawiVideo.class);
startActivity(intent);
} */
}
现在......我感到困惑的是: 1.我在哪里延长YouTube播放器课程? 2.在何处以及如何调用onclicklistener按钮以启动调用youtubeplayerView的其他意图?
感谢。
ironmantis7x
答案 0 :(得分:1)
如果您查看fragment's life cycle,则会在onCreate
之前看到onCreateView
被调用,因此getView()
将返回null
。< / p>
而是将代码从onCreate
移至onCreateView
并使用rootView
而不是getView()
。