calling a spinner from another class giving exception

我的梦境 提交于 2020-01-03 02:30:29

问题


I have two classes : DineOutActivity.java and Userpersonal .java I HAVE a spinner(spinner1) defined in DineOutActivity.java

I am creating a method , so that on image click in UserPersonal.java

and calling the spinner method. so as when i click spinner1 from DineOutActivity.java and come to User Personal.java and then click submit it will redirect to another page.

here is my DineOutActivity.java

public class DineOutActivity extends Activity {

    Spinner sp;
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        /********************spinner***********/

        Spinner food = (Spinner) findViewById(R.id.spinner1);
        ArrayAdapter<CharSequence> foodadapter = ArrayAdapter.createFromResource(
                    this, R.array.item_array, android.R.layout.simple_spinner_item);
        foodadapter.setDropDownViewResource(R.layout.spinner_layout);
        food.setAdapter(foodadapter);
}

this is my UsePersonal.java

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.userpersonal);

    }

    public void spinner()
    { DineOutActivity doa = new DineOutActivity() ;
         Spinner food = doa.sp;

            food.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
             public void onItemSelected(AdapterView<?> parent, View view,
                     int pos, long id) {
                if(pos ==3)
                {
                    Intent select = new Intent();
                    select.setClass(getBaseContext(), PizzaHut.class);
                }
}
          @Override
         public void onNothingSelected(AdapterView<?> arg0) {
             // TODO Auto-generated method stub

         }
     });
    }

public void onClick(View view)

{  spinner();
}




05-04 18:49:32.617: E/AndroidRuntime(24237): FATAL EXCEPTION: main
05-04 18:49:32.617: E/AndroidRuntime(24237): java.lang.IllegalStateException: Could not execute method of the activity
05-04 18:49:32.617: E/AndroidRuntime(24237):    at android.view.View$1.onClick(View.java:2144)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at android.view.View.performClick(View.java:2485)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at android.view.View$PerformClick.run(View.java:9080)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at android.os.Handler.handleCallback(Handler.java:587)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at android.os.Handler.dispatchMessage(Handler.java:92)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at android.os.Looper.loop(Looper.java:130)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at android.app.ActivityThread.main(ActivityThread.java:3687)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at java.lang.reflect.Method.invokeNative(Native Method)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at java.lang.reflect.Method.invoke(Method.java:507)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at dalvik.system.NativeStart.main(Native Method)
05-04 18:49:32.617: E/AndroidRuntime(24237): Caused by: java.lang.reflect.InvocationTargetException
05-04 18:49:32.617: E/AndroidRuntime(24237):    at java.lang.reflect.Method.invokeNative(Native Method)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at java.lang.reflect.Method.invoke(Method.java:507)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at android.view.View$1.onClick(View.java:2139)
05-04 18:49:32.617: E/AndroidRuntime(24237):    ... 11 more
05-04 18:49:32.617: E/AndroidRuntime(24237): Caused by: java.lang.NullPointerException
05-04 18:49:32.617: E/AndroidRuntime(24237):    at com.crews.dineout.UserPersonal.spinner(UserPersonal.java:63)
05-04 18:49:32.617: E/AndroidRuntime(24237):    at com.crews.dineout.UserPersonal.onClick(UserPersonal.java:83)
05-04 18:49:32.617: E/AndroidRuntime(24237):    ... 14 more

I am having exception on UserPersonal.java food.setOnItemSelectedListener(new OnItemSelectedListener() {


回答1:


Your activity you are referencing to is created using the keyword "new"
-> DineOutActivity doa = new DineOutActivity()

Activities have their own lifecycle and are creating using intents!

See http://developer.android.com/reference/android/app/Activity.html

Therefore you do not talk to the right object because this activity neither has a layout, nor does it run through onCreate().



来源:https://stackoverflow.com/questions/10449902/calling-a-spinner-from-another-class-giving-exception

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!