2017-12-23 17 views
0

私は通貨コード(USD、INRなど)を持っています。私はそれらのコードの1文字のみのシンボルを取得したい(例えば、$、₹など)。私はthisのような多くの解決策を見つけようとしましたが、それは私のためには機能しません。私は以下のコードを使用しています

var pound = Currency.getInstance("GBP"); 
var symbol = pound.getSymbol(); 

ただし、(Rs。、US $、AU $など...)のような記号を返します。私は上記のように1つだけの文字記号を取得したい。私はシンボルがロケールに依存していることを知っていますが、シンボルをロケールから独立させたいと思っています。コードの下getSymbol(Locale.getDefault(Locale.Category.DISPLAY))チェックのようなgetSymbol()でデフォルトLocaleを呼び出す

答えて

1

試みが

Currency pound = Currency.getInstance("GBP"); 
pound.getSymbol(Locale.getDefault(Locale.Category.DISPLAY)); 
+0

このパラメータは、API Nがそう、それは上記のみnaugatまたは上で動作が必要ですそれ。他の解決策がある場合は、私に提案してください。 –

0

これが私のために正常に動作

import android.os.Build 

import android.support.v7.app.AppCompatActivity 
import android.os.Bundle 

import kotlinx.android.synthetic.main.activity_main.* 
import java.util.* 

class MainActivity : AppCompatActivity() { 

    override fun onCreate(savedInstanceState: Bundle?) { 
     super.onCreate(savedInstanceState) 
     setContentView(R.layout.activity_main) 
     count() 
    } 

    fun count() { 
     val pound = Currency.getInstance("USD") 
     var str:String 
     str = if(Build.VERSION.SDK_INT >=24) pound.getSymbol(Locale.getDefault(Locale.Category.DISPLAY)) 
     else pound.getSymbol(resources.configuration.locale) 
     tvText.text = str 
    } 


} 
+0

いいえ、それはうまくいきません。 US $、CA $、Rsのような記号を返します。 etc ...私は$、₹などを手に入れたいです。 –

+0

なぜ、私は理解できません。上のコードは$を返します。 – Vsevolod

+0

私はそうだと思うあなたの携帯のデフォルトの国の設定に従って、あなたのデフォルトのロケールが設定されているからです。あなたはインド、日本などのような異なる国を設定することでそれをテストすることができます –

関連する問題