【发布时间】:2015-09-19 16:50:16
【问题描述】:
我的应用有问题。我是初学者。当我将 Spinner 添加到我的应用程序时,我无法运行它:/。我不知道我能做什么。我插入一块应用程序代码并从运行中报告。
09-19 16:32:09.041 2702-2702/?我/艺术:没有后期启用-Xcheck:jni(已经启用)
09-19 16:32:09.060 2702-2709/? E/art﹕向调试器发送回复失败:管道损坏 09-19 16:32:09.060 2702-2709/?我/艺术:调试器不再活动 09-19 16:32:09.215 2702-2702/? D/AndroidRuntime: 关闭虚拟机 09-19 16:32:09.215 2702-2702/? E/AndroidRuntime: FATAL EXCEPTION: main 进程:com.example.myapplication,PID:2702 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}: java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' 空对象引用 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5257) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 引起:java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' 空对象引用 在 com.example.myapplication.MainActivity.onCreate(MainActivity.java:52) 在 android.app.Activity.performCreate(Activity.java:5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5257) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 09-19 16:33:27.440 2702-2702/? I/Process﹕发送信号。 PID:2702 SIG:9
public class MainActivity extends AppCompatActivity implements ActionBar.TabListener {
SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;
//Spinner
Spinner spinner;
ArrayAdapter<CharSequence> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Spinner
spinner = (Spinner)findViewById(R.id.spinner);
adapter = ArrayAdapter.createFromResource(this,R.array.maps,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getBaseContext(), parent.getItemAtPosition(position) + " selected", Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
【问题讨论】:
-
检查第 52 行...您的适配器为空。检查是否正在调用数据。
-
也许还粘贴到您的布局 xml 文件中!看来您的 ID 可能是错误的?
标签: java android android-studio spinner android-spinner