【问题标题】:Adding Spinner to my app将微调器添加到我的应用程序
【发布时间】: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


【解决方案1】:
public void onNothingSelected(AdapterView<?> parent) {

            }

这是我的 fragment_first

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity$PlaceholderFragment">

    <TextView android:id="@+id/section_label" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="First"
        android:id="@+id/textView"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/section_label"
        android:layout_toEndOf="@+id/section_label"
        android:layout_marginLeft="126dp"
        android:layout_marginStart="126dp"
        android:layout_marginBottom="177dp" />

    <Spinner
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/spinner"
        android:layout_below="@+id/section_label"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="43dp" />


</RelativeLayout>

还有我的弦

<resources>
    <string name="app_name">My Application</string>

    <string name="title_section1">1</string>
    <string name="title_section2">2</string>
    <string name="title_section3">3</string>

    <string name="hello_world">Hello world!</string>

    <string name="action_settings">Settings</string>

    <string-array name="maps">
        <item>1</item>
        <item>2</item>
    </string-array>


</resources>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    相关资源
    最近更新 更多