android.widget.AdapterView.fireOnSelected(AdapterView.java:892)

时间:2013-12-08 14:04:43

标签: android android-layout android-listview

当我打算执行thirdactivity.class时,Logcat会这样说,这是什么意思? 活动已经建成。 但是当模仿时,编程停止了。

11-11 10:17:25.824: E/AndroidRuntime(3207): java.lang.NullPointerException
11-11 10:17:25.824: E/AndroidRuntime(3207):     at com.example.andrappexp1.ThirdActivity$2.onItemSelected(ThirdActivity.java:58)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at android.widget.AdapterView.fireOnSelected(AdapterView.java:892)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at android.widget.AdapterView.access$200(AdapterView.java:49)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:860)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at android.os.Handler.handleCallback(Handler.java:730)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at android.os.Handler.dispatchMessage(Handler.java:92)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at android.os.Looper.loop(Looper.java:137)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at android.app.ActivityThread.main(ActivityThread.java:5103)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at java.lang.reflect.Method.invokeNative(Native Method)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at java.lang.reflect.Method.invoke(Method.java:525)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-11 10:17:25.824: E/AndroidRuntime(3207):     at dalvik.system.NativeStart.main(Native Method)

第三个活动类中的微调器是这样的,

Spinner spinner = (Spinner) findViewById(R.id.spinner1);  
this.mAdapter = ArrayAdapter.createFromResource(this, R.array.Cities,
                                    android.R.layout.simple_spinner_dropdown_item);  
spinner.setAdapter(this.mAdapter); 
spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){ 

    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
        // TODO Auto-generated method stub
        //Toast.makeText(parent.getContext(),"The planet is " + parent.getItemAtPosition(pos).toString(),Toast.LENGTH_LONG).show();   
        textViewa.setText("You choose :"+ " " + mAdapter.getItem(arg2)); 
        arg0.setVisibility(View.VISIBLE);    
    }  

    public void onNothingSelected(AdapterView<?> arg0) { 
        // TODO Auto-generated method stub     
        textViewa.setText("NONE");    
        arg0.setVisibility(View.VISIBLE);    
    }    
});    

我怀疑textviewa的陈述确实是一个问题。我把它改成烤面包,就像这个:

toast = Toast.makeText(getApplicationContext(), "Defined Toast",
Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); 
toast.show(); 

一切都好。

现在我找到了忘记绑定来自Id的txtview的原因。这是我的粗心大意。现在添加声明

TextView textViewa=(TextView) findViewById(R.Id.textView1); 
他们表现得很完美。 谢谢你。

2 个答案:

答案 0 :(得分:1)

确定然后使用此代码获取Spinner选择:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            System.out.println();
            textViewa.setText("You choose :"+ " " + ((TextView) arg1).getText().toString()); 

        }

答案 1 :(得分:1)

现在我找到了忘记绑定来自Id的txtview的原因。这是我的粗心大意。现在添加声明:

TextView textViewa=(TextView) findViewById(R.Id.textView1); 
他们表现得很完美。谢谢你。