2016-06-21 9 views
2

私は世界のすべての国の名前を表示するスピナーを作成しました。さて、私は、AFG、AFA、イタリアのITAなどの値を、スピナーからItemを選択してストリングとして保存したいと考えています。私はこれを行う方法について混乱しています。以来、私はスピナーの国のフルネームを割り当てており、Spinnerがクリックされたときに、国名とは異なるデータを渡したいと思っています。アダプタためにあなたのオブジェクトどのように我々はスピナーで選択したテキストよりもアンドロイドスピナーからItem selectに異なる値を渡すことができますか?

class Country{ 
String name; 
String code; 

//getter and setters 
    } 

のようなPOJOと国 List<Country> list;のセットリストを作成します

+1

地図国名を国名とし、イタリアを選択し、地図を検索してITAを取得します。 –

+0

データベースに国名を格納する場合は、別のエントリを作成してください –

答えて

1

あなたがコードで使用したいが、選択他の名前で見たいと思っていない場合、これは二つのこと、1のために行うことができ、あなたがスピナーに名前を表示すると、コードのチェックに使う場合は、2番目のものですソリューションの下に。

国名と

以下CommonClass.java

//I am taking it as CommonClass you can change it. 

    public static final String[] strCountryNames = {"India","Italy","Afghanistan","United States of America"}; 

    public static final String[] strCountryCodes = {"IND","ITA","AFG","USA"}; 

、スピナーsetAdapter使用CommonClass.strCountryNamesについては、

そして、あなたのような国コードを格納するための一つの共通のクラスを作成します。使用するコードを使用したいCommonClass.strCountryCode、

インドのためのコードを取得したい場合、あなたは

String countryName = "China" 
String shortName = countryName.substring(3).toUpperCase(); 
+1

これは私のコードで動作しています。 –

0

代わりに、完全な国名を渡すので、あなたが選択した国を得ることができますし、str.substring(0, 3).toUpperCase()

+0

アメリカ合衆国の場合はどうすればいいですか これは米国である必要があります – Gaurav

2

に呼び出す

国を表示名前とアクセス国コード

spinner.getSelectedItem().getCode(); 
+0

これも機能しています。 –

+0

2つの別々の配列を宣言するとタスクが実行されますが、これはOOPの意味です – Gaurav

0

としてそれを確認することができます。 ご迷惑をおかけして申し訳ございませんが、 こちらがお手伝いします。

0
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     int pos = spinner.getSelectedItemPosition(); 
String mysourcestring= yourarraylistname[+pos]; 
String substr=mysourcestring.substring(0,3).toUpperCase(); 
} 
@Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
}); 

名前の最初の3は後者したい場合は、今あなたが渡す値はSUBSTRになります

CommonClass.strCountryCode[spinner.selectyedPosition]; 
関連する問題