Java Android应用程序开发:不幸的是,应用程序已经停止 当我运行我的程序时,我的android应用程序被停止,下面显示了log cat
它的一部分工作,但当我点击它显示错误。我在导航抽屉程序logcat中实现了此功能,如下所示: 04-02 02:23:30.880 1454-1454/example.ashok.appnav D/AndroidRuntime﹕ 关闭虚拟机 04-02 02:23:30.880 1454-1454/example.ashok.appnav W/dalvikvm﹕ threadid=1:线程以未捕获异常退出(组=0xa6194908) 04-02 02:23:30.880 1454-1454/example.ashok.appnav E/AndroidRuntime﹕ 致命异常:主 java.lang.NullPointerException 例如,ashok.appnav.Jav.onActivityCreated(Jav.java:31) 位于android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1794) 位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:977) 位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136) 位于android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739) 位于android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1499) 位于android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:456) 位于android.os.Handler.handleCallback(Handler.java:725) 位于android.os.Handler.dispatchMessage(Handler.java:92) 位于android.os.Looper.loop(Looper.java:137) 位于android.app.ActivityThread.main(ActivityThread.java:5041) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:511) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 在dalvik.system.NativeStart.main(本机方法)Java Android应用程序开发:不幸的是,应用程序已经停止 当我运行我的程序时,我的android应用程序被停止,下面显示了log cat,java,android,android-fragments,Java,Android,Android Fragments,它的一部分工作,但当我点击它显示错误。我在导航抽屉程序logcat中实现了此功能,如下所示: 04-02 02:23:30.880 1454-1454/example.ashok.appnav D/AndroidRuntime﹕ 关闭虚拟机 04-02 02:23:30.880 1454-1454/example.ashok.appnav W/dalvikvm﹕ threadid=1:线程以未捕获异常退出(组=0xa6194908) 04-02 02:23:30.880 1454-1454/ex
public class Jav extends Fragment implements View.OnClickListener {
public static Jav newInstance(){
Jav fragment = new Jav();
return fragment;
}
Button bleft,bshowanswer,bright;
TextView tv_xx,tv_yy,tvquestion,tvanswers;
String[] greque;
String[] greans;
int index;
public Jav() {
}
public void onActivityCreated(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
super.onActivityCreated(savedInstanceState);
index = 0;
greque = getResources().getStringArray(R.array.greques);
greans = getResources().getStringArray(R.array.greanse);
bleft.setOnClickListener(this);
bright.setOnClickListener(this);
bshowanswer.setOnClickListener(this);
tvquestion.setText(greque[index]);
tvanswers.setText("press a button for ans");
tv_xx.setText(String.valueOf(index+1));
tv_yy.setText(String.valueOf(greque.length));
}
View v;
public void onClick(View v) {
bleft = (Button) v.findViewById(R.id.bleft);
bright = (Button) v.findViewById(R.id.bright);
bshowanswer = (Button) v.findViewById(R.id.bshowanswer);
tvquestion = (TextView) v.findViewById(R.id.tvquestion);
tvanswers =(TextView) v.findViewById(R.id.tvanswers);
tv_xx = (TextView) v.findViewById(R.id.tv_xx);
tv_yy = (TextView) v.findViewById(R.id.tv_yy);
switch (v.getId()){
case R.id.bleft:
break;
case R.id.bshowanswer:
break;
case R.id.bright:
break;
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.java, container,
false);
return rootView;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
((MainActivity) activity).onSectionAttached(2);
}
}
在
onCreateView
中,第31行的内容将v
替换为rootView
,并且视图v
是无用的。您没有实现onClick()
。没有我实现onClick public void onClick(视图v){bleft=(按钮)v.findViewById(R.id.bleft);bright=(按钮)v.findViewById(R.id.bright);bshowanswer=(按钮)v.findviewbyd(R.id.bshowanswer);tvquestion=(TextView)v.findviewbyd(R.id.tvquestion);tvanswers=(TextView)v.findviewbyd(R.id.tvxx);tv_yy=(TextView)v.findviewbyd(R.id.tvyy);开关(v.getId()){
bleft = (Button) rootView.findViewById(R.id.bleft);
bright = (Button) rootView.findViewById(R.id.bright);
bshowanswer = (Button) rootView.findViewById(R.id.bshowanswer);
tvquestion = (TextView) rootView.findViewById(R.id.tvquestion);
tvanswers =(TextView) rootView.findViewById(R.id.tvanswers);
tv_xx = (TextView) rootView.findViewById(R.id.tv_xx);
tv_yy = (TextView) rootView.findViewById(R.id.tv_yy);