2014-01-19 4 views
0

Я попытался передать данные одной активности другим действиям. Данные поступают от Spinners. когда я пытаюсь запустить приложение, он показывает ошибки. Может кто-нибудь мне помочь?Невозможно загрузить дополнительные данные, которые были получены Spinner

это XML

<Spinner 
     android:id="@+id/spinner1" 
     android:layout_width="200dp" 
     android:layout_height="40dp" 
     android:layout_alignLeft="@+id/planets_spinner" 
     android:layout_below="@+id/textView1" 
     android:entries="@array/price_list" /> 



    <Spinner 
     android:id="@+id/planets_spinner" 
     android:layout_width="200dp" 
     android:layout_height="40dp" 
     android:layout_alignLeft="@+id/textView4" 
     android:layout_below="@+id/textView2" 
     android:layout_marginTop="19dp" 
     android:entries="@array/Food" /> 

    <Spinner 
     android:id="@+id/spinner2" 
     android:layout_width="200dp" 
     android:layout_height="40dp" 
     android:layout_alignLeft="@+id/planets_spinner" 
     android:layout_below="@+id/textView3" 
     android:layout_marginTop="16dp" 
     android:entries="@array/dress" /> 
<Spinner 
     android:id="@+id/spinner3" 
     android:layout_width="200dp" 
     android:layout_height="40dp" 
     android:layout_alignLeft="@+id/textView4" 
     android:layout_below="@+id/textView4" 
     android:layout_marginTop="30dp" 
     android:entries="@array/time" /> 

Это первая активность

Spinner dress,food,price,time; 
    String txt_dress,txt_price,txt_food,txt_time,restName; 
    Button btnSearch; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.advance_searech); 

     dress = (Spinner) findViewById(R.id.spinner1); 
     price= (Spinner) findViewById(R.id.planets_spinner); 
     food= (Spinner) findViewById(R.id.spinner2); 
     time= (Spinner) findViewById(R.id.spinner3); 

     btnSearch = (Button) findViewById(R.id.button1); 

     btnSearch.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 


       txt_dress = dress.getSelectedItem().toString(); 
       txt_food = food.getSelectedItem().toString(); 
       txt_price = price.getSelectedItem().toString(); 
       txt_time = time.getSelectedItem().toString(); 
       Log.d("Dress", txt_dress); 

       Intent intent = new Intent(AdvanceSearch.this,AdvanceSearchResult.class); 
       intent.putExtra("txt_price", txt_price); 
       intent.putExtra("txt_dress", txt_dress); 
       intent.putExtra("txt_time", txt_time); 
       intent.putExtra("txt_food", txt_food); 
       startActivity(intent); 
      } 
     }); 
    } 

это вторая активность

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.advance_result); 

    Intent i = getIntent(); 
    String price = i.getStringExtra("txt_price"); 

    Toast.makeText(getApplicationContext(), price, Toast.LENGTH_LONG).show(); 

} 

Это ошибка

01-19 12:07:02.571: E/AndroidRuntime(10020): FATAL EXCEPTION: main 
01-19 12:07:02.571: E/AndroidRuntime(10020): java.lang.NullPointerException 
01-19 12:07:02.571: E/AndroidRuntime(10020): at com.example.rp.AdvanceSearch$1.onClick(AdvanceSearch.java:46) 
01-19 12:07:02.571: E/AndroidRuntime(10020): at android.view.View.performClick(View.java:4191) 
01-19 12:07:02.571: E/AndroidRuntime(10020): at android.view.View$PerformClick.run(View.java:17229) 
01-19 12:07:02.571: E/AndroidRuntime(10020): at android.os.Handler.handleCallback(Handler.java:615) 
01-19 12:07:02.571: E/AndroidRuntime(10020): at android.os.Handler.dispatchMessage(Handler.java:92) 
01-19 12:07:02.571: E/AndroidRuntime(10020): at android.os.Looper.loop(Looper.java:137) 
01-19 12:07:02.571: E/AndroidRuntime(10020): at android.app.ActivityThread.main(ActivityThread.java:4960) 
01-19 12:07:02.571: E/AndroidRuntime(10020): at java.lang.reflect.Method.invokeNative(Native Method) 
01-19 12:07:02.571: E/AndroidRuntime(10020): at java.lang.reflect.Method.invoke(Method.java:511) 
01-19 12:07:02.571: E/AndroidRuntime(10020): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
01-19 12:07:02.571: E/AndroidRuntime(10020): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
01-19 12:07:02.571: E/AndroidRuntime(10020): at dalvik.system.NativeStart.main(Native Method) 
+0

что линия 46? – Raghunandan

+0

Я думаю, что 'Spinner.getSelectedItem()' возвращает 'null' –

+0

@GopalRao yes.why's that? У тебя есть идея? – anuruddhika

ответ

2

Здесь price и time является нулевой, потому что вы не инициализируется, и вы делаете в onCLick

price.getSelectedItem().toString(); 
time.getSelectedItem().toString(); 

Так Изменение

dress = (Spinner) findViewById(R.id.spinner1); 
food = (Spinner) findViewById(R.id.planets_spinner); 
dress = (Spinner) findViewById(R.id.spinner2); 
food = (Spinner) findViewById(R.id.spinner3); 

в

dress = (Spinner) findViewById(R.id.spinner1); 
food = (Spinner) findViewById(R.id.planets_spinner); 
price = (Spinner) findViewById(R.id.spinner2); 
time = (Spinner) findViewById(R.id.spinner3); 
+0

Спасибо @Name не отображается. Я этого не видел. Теперь это работает. – anuruddhika

+0

Добро пожаловать :), я был бы проблемой ** copy cut **: P –

+0

@anuruddhika кажется, что ваша проблема решена ... Вы можете принять этот ответ, если это вам помогло ... –

Смежные вопросы