Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 微调器在调用entries值时抛出NullPointerException_Java_Android_Spinner - Fatal编程技术网

Java 微调器在调用entries值时抛出NullPointerException

Java 微调器在调用entries值时抛出NullPointerException,java,android,spinner,Java,Android,Spinner,我的操作栏中有一个微调器,我想在选择一个并将其转换为字符串时获取微调器中条目的值。每次启动活动时,它都会发出NullPointerException。我该如何解决这个问题 我已经阅读了许多指南和问题,但我找不到任何更简单和接近我的情况。这是代码 spinner.xml 以下是logcat错误: 02-16 14:10:29.784: E/AndroidRuntime(29837): FATAL EXCEPTION: main 02-16 14:10:29.784: E/AndroidRuntim

我的
操作栏中有一个
微调器
,我想在选择一个并将其转换为
字符串时获取
微调器
中条目的值。每次启动
活动
时,它都会发出
NullPointerException
。我该如何解决这个问题

我已经阅读了许多指南和问题,但我找不到任何更简单和接近我的情况。这是代码

spinner.xml 以下是logcat错误:

02-16 14:10:29.784: E/AndroidRuntime(29837): FATAL EXCEPTION: main
02-16 14:10:29.784: E/AndroidRuntime(29837): Process: test.com.classmanagertest, PID: 29837
02-16 14:10:29.784: E/AndroidRuntime(29837): java.lang.RuntimeException: Unable to start activity ComponentInfo{test.com.classmanagertest/test.com.classmanagertest.ClassViewStudents}: java.lang.NullPointerException
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread.access$800(ActivityThread.java:139)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.os.Handler.dispatchMessage(Handler.java:102)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.os.Looper.loop(Looper.java:149)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread.main(ActivityThread.java:5257)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at java.lang.reflect.Method.invokeNative(Native Method)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at java.lang.reflect.Method.invoke(Method.java:515)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at dalvik.system.NativeStart.main(Native Method)
02-16 14:10:29.784: E/AndroidRuntime(29837): Caused by: java.lang.NullPointerException
02-16 14:10:29.784: E/AndroidRuntime(29837):    at test.com.classmanagertest.ClassViewStudents.onCreate(ClassViewStudents.java:43)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.Activity.performCreate(Activity.java:5411)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
02-16 14:10:29.784: E/AndroidRuntime(29837):    ... 11 more

首先检查微调器是否包含值。如果它没有值,则必须将数组放入微调器中

用这条线

String[] mTestArray =   getResources().getStringArray(R.array.pmf);
SpinnerPMF.setAdapter(new ArrayAdapter<String>(context,android.R.layout.sipmle_spinner_item,mTestArray)) 
这条线

我希望这对你有帮助

我的ActionBar中有一个微调器,我想得到 选择一个微调器并将其转换为字符串时微调器中的条目

如果微调器位于
ActionBar
内,则使用
onCreateOptions菜单
设置所选值:

private String SpinnerSelectedValue="";
@Override
public boolean onCreateOptionsMenu(Menu menu) {
   MenuInflater inflater = getMenuInflater();
   inflater.inflate(R.menu.menu_classviewstudents, menu);
   MenuItem item = menu.findItem(R.id.AddGrades);
   SpinnerPMF = (Spinner)item.getActionView();
   SpinnerPMF.setOnItemSelectedListener(new OnItemSelectedListener() {

     @Override
     public void onItemSelected(AdapterView<?> parentView, View selectedItemView, 
                                                         int position, long id) {
       SpinnerSelectedValue=parentView.getItemAtPosition(position).toString();
    }

  });
 return true;
}
private String spinner selectedvalue=“”;
@凌驾
公共布尔onCreateOptions菜单(菜单){
MenuInflater充气机=getMenuInflater();
充气机。充气(R.menu.menu\u classview学生,菜单);
MenuItem=menu.findItem(R.id.AddGrades);
SpinnerPMF=(微调器)项。getActionView();
SpinnerPMF.setOnItemSelectedListener(新的OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、View selectedItemView、,
内部位置,长id){
SpinnerSelectedValue=parentView.getItemAtPosition(位置).toString();
}
});
返回true;
}

现在使用
SpinnerSelectedValue
在单击表格行时获取所选值。

指示第43行@
ClassViewStudents
,post
onCreate
方法too@Kreyah:ClassViewStudents.java中的行号
43
是什么?@shayanpourvatan:spinnervalue=SpinnerPMF.getSelectedItem().toString();是第43行,添加到create@ρцσρѕρєK:看看上面的评论。@Kreyah:亲爱的,很简单,你在
setContentView
中传递了错误的布局,因为微调器在
菜单\u classviewstudents
布局中,但是你在
setContentView
中传递了
类视图喷丝头PMF=(喷丝头)findViewById(R.id.喷丝头术语);父项中仍然存在相同的错误(空指针异常)。getItemAtPosition表示错误无法解析符号。@Kreyah:使用
parentView
而不是
parent
我仍然收到空指针异常错误。第126行为SpinnerPMF=(Spinner)项。getActionView()@Kreyah:change
MenuItem=menu.findItem(R.id.SpinnerTerms)
to
MenuItem item=menu.findItem(R.id.AddGrades)它正在工作!最后这段代码很简单,但我发现很难对它进行研究。谢谢你的努力!
protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.classes_view);

        SpinnerPMF = (Spinner) findViewById(R.id.SpinnerTerms);

        spinnervalue = SpinnerPMF.getItemAtPosition(SpinnerPMF.getSelectedItemPosition()).toString();

        db = openOrCreateDatabase("ClassManager", MODE_WORLD_WRITEABLE, null);

        reciever = getIntent().getStringExtra("sender");

        Cursor c = db.rawQuery("SELECT * FROM '" + reciever + "'", null);

        int count= c.getCount();
        c.moveToFirst();
        TableLayout tableLayout = new TableLayout(getApplicationContext());
        tableLayout.setVerticalScrollBarEnabled(true);
        tableLayout.setHorizontalScrollBarEnabled(true);

        RelativeLayout rl=(RelativeLayout)findViewById(R.id.layout3);
        ScrollView sv = new ScrollView(this);
        sv.setHorizontalScrollBarEnabled(true);
        sv.addView(tableLayout);
        rl.addView(sv, new WindowManager.LayoutParams(WindowManager.LayoutParams.FILL_PARENT, WindowManager.LayoutParams.FILL_PARENT));


        for (Integer j = 0; j < count; j++)
        {
            tableRow = new TableRow(getApplicationContext());
            textView1 = new TextView(getApplicationContext());
            textView1.setText(c.getString(c.getColumnIndex("StudentID")));
            textView1.setPadding(20, 20, 20, 20);
            textView1.setTextColor(getResources().getColor(R.color.redactionbar));
            textView1.setTextSize(TypedValue.COMPLEX_UNIT_DIP,25);
            textView1.setTypeface(null, Typeface.BOLD);
            tableRow.addView(textView1);

            final TableRow finalTableRow = tableRow;

            textView = new TextView(getApplicationContext());
            textView.setText(c.getString(c.getColumnIndex("LastName")));
            textView.setPadding(20, 20, 20, 20);
            textView.setTextColor(getResources().getColor(R.color.redactionbar));
            textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP,25);
            textView.setTypeface(null, Typeface.BOLD);
            tableRow.addView(textView);
            tableLayout.addView(tableRow);

            tableRow.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View view)
                {

                    Toast toast = Toast.makeText(getApplicationContext(), spinnervalue, Toast.LENGTH_SHORT);
                    toast.show();

                    /*
                    if(SpinnerValue == "Prelim")
                    {
                        Toast toast = Toast.makeText(getApplicationContext(), "Prelim Selected", Toast.LENGTH_SHORT);
                        toast.show();
                    }

                    else if (SpinnerValue == "Midterm")
                    {
                        Toast toast = Toast.makeText(getApplicationContext(), "Midterm Selected", Toast.LENGTH_SHORT);
                        toast.show();
                    }

                    else if (SpinnerValue == "Finals")
                    {
                        Toast toast = Toast.makeText(getApplicationContext(), "Finals Selected", Toast.LENGTH_SHORT);
                        toast.show();
                    }
                    */
                }
            });

            c.moveToNext() ;
        }
        rl.requestLayout();
        db.close();

    }
02-16 14:10:29.784: E/AndroidRuntime(29837): FATAL EXCEPTION: main
02-16 14:10:29.784: E/AndroidRuntime(29837): Process: test.com.classmanagertest, PID: 29837
02-16 14:10:29.784: E/AndroidRuntime(29837): java.lang.RuntimeException: Unable to start activity ComponentInfo{test.com.classmanagertest/test.com.classmanagertest.ClassViewStudents}: java.lang.NullPointerException
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread.access$800(ActivityThread.java:139)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.os.Handler.dispatchMessage(Handler.java:102)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.os.Looper.loop(Looper.java:149)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread.main(ActivityThread.java:5257)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at java.lang.reflect.Method.invokeNative(Native Method)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at java.lang.reflect.Method.invoke(Method.java:515)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at dalvik.system.NativeStart.main(Native Method)
02-16 14:10:29.784: E/AndroidRuntime(29837): Caused by: java.lang.NullPointerException
02-16 14:10:29.784: E/AndroidRuntime(29837):    at test.com.classmanagertest.ClassViewStudents.onCreate(ClassViewStudents.java:43)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.Activity.performCreate(Activity.java:5411)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
02-16 14:10:29.784: E/AndroidRuntime(29837):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
02-16 14:10:29.784: E/AndroidRuntime(29837):    ... 11 more
String[] mTestArray =   getResources().getStringArray(R.array.pmf);
SpinnerPMF.setAdapter(new ArrayAdapter<String>(context,android.R.layout.sipmle_spinner_item,mTestArray)) 
SpinnerPMF = (Spinner) findViewById(R.id.SpinnerTerms);
private String SpinnerSelectedValue="";
@Override
public boolean onCreateOptionsMenu(Menu menu) {
   MenuInflater inflater = getMenuInflater();
   inflater.inflate(R.menu.menu_classviewstudents, menu);
   MenuItem item = menu.findItem(R.id.AddGrades);
   SpinnerPMF = (Spinner)item.getActionView();
   SpinnerPMF.setOnItemSelectedListener(new OnItemSelectedListener() {

     @Override
     public void onItemSelected(AdapterView<?> parentView, View selectedItemView, 
                                                         int position, long id) {
       SpinnerSelectedValue=parentView.getItemAtPosition(position).toString();
    }

  });
 return true;
}