2013-11-13 4 views
0

Я новичок в android. Я застрял со спиннером. Есть два элемента «ОТ» и «В». Я хочу код как .. если я хочу искать FROM Place1, To Place2. Затем, после нажатия кнопки, если условие соответствует, оно должно перенаправляться на другую страницу. При запуске приложения я не получаю никаких ошибок, и от нажатия кнопки ответа не возникает.Android: как получить значение от Spinner и на основе значения перенаправить на другую страницу

См. Приведенный ниже код. Я пробовал эту вещь по 3 пути (* в комментариях), ни один из них не дает желаемого результата.

package com.aricent.aricentgroupapps; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Spinner; 


public class SelectLocation extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_select_location); 


     Button route = (Button) findViewById(R.id.RouteButton); 
     final Spinner spin1 = (Spinner) findViewById(R.id.fromdropdrown); 
     final Spinner spin2 = (Spinner) findViewById(R.id.todropdrown); 





     route.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
      String str1 = spin1.getSelectedItem().toString(); 
      String str2 = spin2.getSelectedItem().toString(); 
      String plot31= "Plot 31"; 
      String plot314= "Plot 314"; 
     /* if(String.valueOf(spin1.getSelectedItem())== "Plot 17" && String.valueOf(spin2.getSelectedItem())== "Plot 16") 
      { 
       Intent i = new Intent(SelectLocation.this, Route1.class); 
       startActivity(i); 
      } 


      if (spin1.equals("Plot 17") && spin2.equals("Plot 16")) 
       { 
        Intent i = new Intent(SelectLocation.this, Route1.class); 
        startActivity(i); 
       } 
       */ 

      if (str1== plot31 && str2==plot314) 
      { 
       Intent i = new Intent(SelectLocation.this, Route1.class); 
       startActivity(i); 

      } 
      } 
     }); 



    } 

    protected String valueOf(Object selectedItem) { 
     // TODO Auto-generated method stub 
     return getString(0); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.select_location, menu); 
     return true; 
    } 

} 
+1

Dont сравнить строку с помощью ==, использование строки равняется методу – Subbu

ответ

0

использование this-

if(str1.equals("plot16")&&str2.equals("plot17")){ 
      //do functionality 
       } 
0
 if (str1.equals(plot31) && str2.equals(plot314)) 
     { 
      Intent i = new Intent(SelectLocation.this, Route1.class); 
      startActivity(i); 

     } 

попробовать это. == используется для сравнения ссылок, тогда как метод equals() используется для сравнения значений.

1

использовать это один

spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() { 
@Override 
    public void onItemSelected(AdapterView<?> main, View view, int position, 
      long Id) { 
      if(position==0){ 
      //your code 
      } 
      if(position==1){ 
      //your code 
      } 
    } 
} 
+0

Большое спасибо. Это помогло мне :) – user2986380

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