Android 从另一个类调用微调器时出现异常
我有两个类:DineOutActivity.java和Userpersonal.java 我在DineOutActivity.java中定义了一个微调器(微调器1) 我正在创建一个方法,以便在图像上单击UserPersonal.javaAndroid 从另一个类调用微调器时出现异常,android,spinner,Android,Spinner,我有两个类:DineOutActivity.java和Userpersonal.java 我在DineOutActivity.java中定义了一个微调器(微调器1) 我正在创建一个方法,以便在图像上单击UserPersonal.java @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV
@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
以及调用微调器方法。因此,当我从DineOutActivity.java中单击spinner1并转到User Personal.java,然后单击submit时,它将重定向到另一个页面
这是我的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);
}
公共类DineOutActivity扩展活动{
纺纱机;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/********************纺纱机***********/
Spinner食物=(Spinner)findViewById(R.id.Spinner 1);
ArrayAdapter foodadapter=ArrayAdapter.createFromResource(
这个,R.array.item\u数组,android.R.layout.simple\u微调器\u item);
foodadapter.setDropDownViewResource(R.layout.spinner\u布局);
食品.设置适配器(foodadapter);
}
这是我的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
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.userpersonal);
}
公共无效微调器()
{DineOutActivity doa=新的DineOutActivity();
Spinner food=doa.sp;
food.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图、,
内部位置,长id){
如果(位置==3)
{
意向选择=新意向();
选择.setClass(getBaseContext(),PizzaHut.class);
}
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});
}
公共void onClick(视图)
{spinner();
}
05-04 18:49:32.617:E/AndroidRuntime(24237):致命异常:主
05-04 18:49:32.617:E/AndroidRuntime(24237):java.lang.IllegalStateException:无法执行活动的方法
05-04 18:49:32.617:E/AndroidRuntime(24237):在android.view.view$1.onClick(view.java:2144)
05-04 18:49:32.617:E/AndroidRuntime(24237):在android.view.view.performClick(view.java:2485)上
05-04 18:49:32.617:E/AndroidRuntime(24237):在android.view.view$PerformClick.run(view.java:9080)
05-04 18:49:32.617:E/AndroidRuntime(24237):在android.os.Handler.handleCallback(Handler.java:587)上
05-04 18:49:32.617:E/AndroidRuntime(24237):位于android.os.Handler.dispatchMessage(Handler.java:92)
05-04 18:49:32.617:E/AndroidRuntime(24237):在android.os.Looper.loop(Looper.java:130)上
05-04 18:49:32.617:E/AndroidRuntime(24237):位于android.app.ActivityThread.main(ActivityThread.java:3687)
05-04 18:49:32.617:E/AndroidRuntime(24237):位于java.lang.reflect.Method.Invokenactive(本机方法)
05-04 18:49:32.617:E/AndroidRuntime(24237):在java.lang.reflect.Method.invoke(Method.java:507)
05-04 18:49:32.617:E/AndroidRuntime(24237):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
05-04 18:49:32.617:E/AndroidRuntime(24237):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
05-04 18:49:32.617:E/AndroidRuntime(24237):在dalvik.system.NativeStart.main(本机方法)
05-04 18:49:32.617:E/AndroidRuntime(24237):由以下原因引起:java.lang.reflect.InvocationTargetException
05-04 18:49:32.617:E/AndroidRuntime(24237):位于java.lang.reflect.Method.Invokenactive(本机方法)
05-04 18:49:32.617:E/AndroidRuntime(24237):在java.lang.reflect.Method.invoke(Method.java:507)
05-04 18:49:32.617:E/AndroidRuntime(24237):在android.view.view$1.onClick(view.java:2139)
05-04 18:49:32.617:E/AndroidRuntime(24237):…还有11个
05-04 18:49:32.617:E/AndroidRuntime(24237):由以下原因引起:java.lang.NullPointerException
05-04 18:49:32.617:E/AndroidRuntime(24237):在com.crews.dineout.UserPersonal.spinner(UserPersonal.java:63)
05-04 18:49:32.617:E/AndroidRuntime(24237):在com.crews.dineout.UserPersonal.onClick(UserPersonal.java:83)
05-04 18:49:32.617:E/AndroidRuntime(24237):…还有14个
我对UserPersonal.java food.setOnItemSelectedListener(new OnItemSelectedListener(){您正在引用的活动是使用关键字“new”创建的
->
DineOutActivity doa=新的DineOutActivity()
活动有自己的生命周期,并且正在使用意图创建
看
因此,您没有与正确的对象对话,因为此活动既没有布局,也没有通过
onCreate()
运行。您所引用的活动是使用关键字“new”创建的->
DineOutActivity doa=新的DineOutActivity()
活动有自己的生命周期,并且正在使用意图创建
看
因此,您没有与正确的对象对话,因为此活动既没有布局,也没有运行在
onCreate()
中,如果我给DineOutActivity doa;它要求初始化;我应该给null吗?(DineOutActivity doa=null;如果我给DineOutActivity doa;它要求初始化;我应该给null吗?(DineOutActivity doa=null;可能是我得到的..让我检查一下应该是食物,dao.foodsorry我仍然有错误,为什么不将食物微调器移动到使用个人活动。您声明spinner food=(spinner)findViewById(R.id.spinner1);在UserPersonal.java中,您得到spinner food=doa.sp;其中“sp”没有用任何值声明。因此,请将Spinner food=(Spinner)findViewById(R.id.spinner1);更改为sp=(Spinner)findViewById(R.id.spinner1);@BBExpert我尝试过。但是我必须更改模块。你能邀请我加入聊天吗?可能我得到了。让我检查一下应该是food,dao。foodsorry我仍然有错误为什么