2017-02-28 34 views
0

我嘗試在FlightAct活動(值將使用URL來解析json)中設置departureCity值(它在FlightCityOnItemSelectedListener類中的onItemSelected方法的if/else中設置)。如何在其他類中使用if/else輸出

現在我怎麼能得到我的FlightAct.java的departureCity值?或其他活動? 因爲我將使用循環中的許多變量,他們在methods.how使用它們的方法嗎?

package ir.safarbazha.safarbazha.Core.adapter; 

import android.provider.Settings; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.Spinner; 
import android.widget.Toast; 

public class FlightCityOnItemSelectedListener 
     implements AdapterView.OnItemSelectedListener { 

    String departureCity; 

    public void onItemSelected(
      AdapterView<?> parent, 
      View view, 
      int pos, 
      long id 
    ) { 
     String selectedCity = parent.getItemAtPosition(pos).toString(); 
     if (selectedCity.equals("آبادان")) { 
      departureCity="ABD"; 

      Toast.makeText(parent.getContext(), 
        "آنچه انتخاب شد : " + 
          parent.getItemAtPosition(pos).toString(), 
        Toast.LENGTH_SHORT).show(); 
     } 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 

     // TODO Auto-generated method stub 
    } 
} 

=========================================== =====================================

package ir.safarbazha.safarbazha.Acts; 

import android.content.Context; 
import android.content.Intent; 
import android.content.pm.ActivityInfo; 
import android.content.res.Configuration; 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v4.view.GravityCompat; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.ButtonBarLayout; 
import android.support.v7.widget.Toolbar; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.animation.Animation; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.RadioButton; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.Toast; 

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.List; 
import java.util.Locale; 

import ir.safarbazha.safarbazha.Core.adapter.DrawerCustomListAdapter; 
import ir.safarbazha.safarbazha.Core.adapter.FlightCityOnItemSelectedListener; 
import ir.safarbazha.safarbazha.R; 
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper; 

public class FlightAct extends AppCompatActivity { 

    Context currentActivity=FlightAct.this; 
    ActionBar mainActionbar; 
    ImageView mainToolbarMenu; 
    ImageView mainToolbarHome; 
    ImageView mainToolbarAbout; 
    ImageView mainToolbarAccount; 
    ImageView mainToolbarSearch; 

    DrawerLayout mainDLayout; 
    DrawerCustomListAdapter mainDCLAdapter; 
    String[] mainDitems; 
    List<String> mainDItems; 
    ListView mainDLV; 

    //Just For This Activity... 
    Spinner departureCity , arrivalCity; 
    TextView departureDate , arrivalDate , capacityCount; 
    RadioButton radioButtonOneWayFlightType , radioButtonRoundTripFlightType; 
    Button btnSubmitFlightForm; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //Localize... 
     if (!Locale.getDefault().getLanguage().equals("fa")){ 
      String languageToLoad = "fa"; 
      Locale locale = new Locale(languageToLoad); 
      Locale.setDefault(locale); 
      Configuration config = new Configuration(); 
      config.locale = locale; 
      getBaseContext().getResources().updateConfiguration(config, 
        getBaseContext().getResources().getDisplayMetrics()); 
      this.setContentView(R.layout.act_flight); 
     } 
     setContentView(R.layout.act_flight); 

     //Set Custom ToolBar... 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     mainActionbar=getSupportActionBar(); 
     final LayoutInflater inflator = (LayoutInflater) this 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View v = inflator.inflate(R.layout.toolbar, null); 
     mainActionbar.setCustomView(v); 
     mainActionbar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 

     //Set Custom ToolBar Objects... 
     //MainToolBar Menu Image Object... 
     mainToolbarMenu=(ImageView)findViewById(R.id.nav_drawer_menu); 
     mainToolbarMenu.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (mainDLayout.isDrawerOpen(GravityCompat.START)) 
        mainDLayout.closeDrawer(GravityCompat.START); 
       else mainDLayout.openDrawer(GravityCompat.START); 
      } 
     }); 
     //Main ToolBar Home Image Object... 
     mainToolbarHome=(ImageView)findViewById(R.id.toolbar_home_icon); 
     mainToolbarHome.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startActivity(new Intent(currentActivity,HomeAct.class)); 
      } 
     }); 
     //Main ToolBar About Image Object... 
     mainToolbarAbout=(ImageView)findViewById(R.id.toolbar_about_icon); 
     mainToolbarAbout.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startActivity(new Intent(currentActivity,AboutAct.class)); 
      } 
     }); 
     //Main ToolBar Account Image Object... 
     mainToolbarAccount=(ImageView)findViewById(R.id.toolbar_account_icon); 
     mainToolbarAccount.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startActivity(new Intent(currentActivity,AccountAct.class)); 
      } 
     }); 
     //Main ToolBar Search Image Object... 
     mainToolbarSearch=(ImageView)findViewById(R.id.toolbar_search_icon); 
     mainToolbarSearch.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startActivity(new Intent(currentActivity,SearchAct.class)); 
      } 
     }); 

     //Set Custom Navigation Drawer... 
     mainDLayout=(DrawerLayout)findViewById(R.id.drawer_layout); 
     mainDLV=(ListView)findViewById(R.id.drawer_lv); 
     mainDitems= getResources().getStringArray(R.array.main_titles); 
     mainDItems=new ArrayList<String>(Arrays.asList(mainDitems)); 
     mainDCLAdapter=new DrawerCustomListAdapter(this,mainDItems); 
     mainDLV.setAdapter(mainDCLAdapter); 
     mainDLV.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       String selectedItem = getResources().getStringArray(R.array.main_titles)[position]; 
       if (position==0) 
        startActivity(new Intent(currentActivity, HomeAct.class)); 
       else if (position == 1) 
        startActivity(new Intent(currentActivity,AboutAct.class)); 
       else if (position == 2) 
        startActivity(new Intent(currentActivity, PostAct.class)); 
       else if (position == 3) 
        Snackbar.make(view, "کاربر گرامی شما هم اکنون در *پرواز ها* برنامه سفر باز ها هستید!", Snackbar.LENGTH_LONG) 
          .setAction("Action", null).show(); 
       else if (position == 4) 
        startActivity(new Intent(currentActivity, ProductAct.class)); 
       else if (position == 5) 
        startActivity(new Intent(currentActivity, AccountAct.class)); 
       else if (position == 6) 
        startActivity(new Intent(currentActivity, ContactAct.class)); 
      } 
     }); 

     //Just For This Activity... 
     addListenerOnButton(); 
     addListenerOnSpinnerItemSelection(); 

     //Selected Departure And Arrival Airports... 
     departureCity=(Spinner)findViewById(R.id.departure_city); 
     arrivalCity=(Spinner)findViewById(R.id.arrival_city); 

     //Selected Flight Type (OneWay or RoundTrip)... 
     radioButtonOneWayFlightType=(RadioButton)findViewById(R.id.btnRadioOneWayFlightType); 
     radioButtonRoundTripFlightType=(RadioButton)findViewById(R.id.btnRadioRoundTripFlightType); 

     radioButtonOneWayFlightType.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       arrivalDate.setVisibility(View.GONE); 
      } 
     }); 

     radioButtonRoundTripFlightType.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       arrivalDate.setVisibility(View.VISIBLE); 
      } 
     }); 

     //Selected Departure And Arrival Date... 
     departureDate=(TextView)findViewById(R.id.departure_date); 
     arrivalDate=(TextView)findViewById(R.id.arrival_date); 

     //Selected Count Of Capacity... 
     capacityCount=(TextView)findViewById(R.id.capacity_count); 

    } 
    //Set Custom Font For All Views in Core/app/AppController ... 
    @Override 
    protected void attachBaseContext(Context newBase) { 
     super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); 
    } 

    //Just For This Activity... 
    //DropDown City Choosing... 
    public void addListenerOnSpinnerItemSelection() { 
     departureCity = (Spinner) findViewById(R.id.departure_city); 
     arrivalCity = (Spinner)findViewById(R.id.arrival_city); 
     departureCity.setOnItemSelectedListener(new FlightCityOnItemSelectedListener()); 
     arrivalCity.setOnItemSelectedListener(new FlightCityOnItemSelectedListener()); 
    } 
    // get the selected dropdown list value 
    public void addListenerOnButton() { 

     departureCity = (Spinner) findViewById(R.id.departure_city); 
     arrivalCity = (Spinner) findViewById(R.id.arrival_city); 
     btnSubmitFlightForm = (Button) findViewById(R.id.btnSubmitFlightActForm); 

     btnSubmitFlightForm.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(currentActivity,"OnClickListener : " 
         +"\nشهر مبدا : "+ 
         String.valueOf(departureCity.getSelectedItem()) 
         + 
         "\nشهر مقصد : "+ 
         String.valueOf(arrivalCity.getSelectedItem()) 
         , 
         Toast.LENGTH_SHORT).show(); 
      } 

     }); 
    } 
} 
+0

請考慮在發佈一個[最小,完整的,並且可驗證示例](http://stackoverflow.com/help/mcve);您的代碼片段可以延長手頭的時間 – bc004346

回答

0

你可以使它成爲靜態的,所以你可以在其他課程的任何地方使用它。

更改「public static String departureCity」而不是「String departureCity」;

然後你可以這樣調用它:FlightCityOnItemSelectedListener.departureCity (沒有實例化FlightCityOnItemSelectedListener)。

1

將所需數據保存在類變量中。

您可以使用bundle將數據發送到其他您可以訪問該數據的活動。

代碼示例將數據存儲在用於啓動所述第二活動

Intent intent = new Intent(FirstActivity.this, SecondActivity.class); 
Bundle b = new Bundle(); 
b.putString("stringvalue", strValue); 
b.putLong("longvalue", lngValue); 
b.putDouble("doublevalue", doubValue); 
b.putBoolean("boolvalue", boolValue); 
intent.putExtras(b); 
startActivity(intent); 

代碼以獲得在所述第二活動從包中的數據(該碼被放置在的onCreate的意圖()法):

// get the Intent that started this Activity 
    Intent in = getIntent(); 

    Bundle b = in.getExtras(); 
    String strValue= b.getString("stringvalue"); 

    long longValue = b.getLong("longvalue"); 
    double doubleValue= b.getDouble("doublevalue"); 
    boolean boolValue= b.getBoolean("boolvalue"); 
相關問題