ست شدن اعداد فارسی...!!!!!!!!!!!
بازم سلام
آقا ما از خیر فارسی نشون دادن با درج کاما گذشتیم!!
۲ تا ادیت تکست دارم و یه دکمه کانورت. با وارد کردن عدد اعشاری در ادیت تکست اولی و زدن دکمه کانورت عدد وارد شده در عدد ۱۰ ضرب میشه و موقعی ک زبان گوشی انگلیسیه همه چیزو توی ادیت تکست دومی خوب نشون میده توووپ.
اینجوری:

ولی همینکارو وقتی زبان گوشی فارسیه انجام میدم اینجوری میشه:

میخوام کلاً انگلیسی باشه! به همراه کاما
(ناگفته نمونه موقعی که دستی عددی توی ادیت تکست دومی وارد میکنم لاتین وارد میشه حتی زمانی ک زبان گوشی فارسیه ولی موقع ست کردن ایجوری میشه)
فونت بکار بردم نشد
digitزدم نشد
اگه مشکلش حل نشه مجبورم با همون حالت ساده و معمولی راهی بازارش کنم
حسابش کن عدد 10000000000000000000 رو طرف بخواد بخونه!!! خب معلومه که اینجوری 1,000,000,000,000,000,000 راحت تره (البته انگلیسی)
دوستان یه حرکتی بزنین ماهم اسممون بره تو بازار (البته هدفم این نیست)
ممنون بابت همکاریتون
ببخشید زیاد حرف زدم
یا علی
...Loading
امیدوارم حل بشه.انشاا...
public class send_activity extends Activity {
private static String decimalFormatCommafy(String inputnum) {
String[] splittednum = inputnum.split("\\.");
String decimalnum = "";
if (splittednum.length == 2) {
inputnum = splittednum[0];
decimalnum = "." + splittednum[1];
}
Double inputDouble = Double.parseDouble(inputnum);
DecimalFormat myFormatter = new DecimalFormat("###,###");
String output = myFormatter.format(inputDouble);
return output + decimalnum;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.send_layout);
final Button btn_conpute = (Button) findViewById(R.id.btn_compute);
final EditText txt_compute = (EditText) findViewById(R.id.edt_caption);
final EditText edt_userinpute = (EditText) findViewById(R.id.edt_userinpute);
btn_conpute.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if (edt_userinpute.getText().toString().length() > 0) {
String userinpute = edt_userinpute.getText().toString();
double b = Double.parseDouble(String.valueOf(userinpute));
b = b* 10;
String resulte = decimalFormatCommafy(String.valueOf(b));
txt_compute.setText(resulte);
}
}
});
}
}
-----------------------------------------------------------
<EditText
android:id="@+id/edt_userinpute"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="0123456789"
android:ems="10"
android:inputType="numberDecimal" />
<EditText
android:layout_width="0dp"
android:layout_height="40dp"
android:inputType="numberDecimal"
android:digits="0123456789"
android:id="@+id/edt_caption"
android:ems="10"
android:layout_weight="0.80"
android:layout_margin="5dp"
android:background="#ffffff" />
<Button
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="New Button"
android:id="@+id/btn_compute" />
سلام
رفیق شما باید locale برنامت رو روی زبان انگلیسی تنظیم کنی درست میشه
این کد رو توی کلاس G بذار برنامت کار میکنه
Locale locale = new Locale( "en" );
Locale.setDefault( locale );
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration( config , getBaseContext().getResources().getDisplayMetrics() );
همین طور میتونی از این کلاس برای فارسی کردن کل عدد ها استفاده کنی
public static class FormatHelper {
private static final String[] persianNumbers = new String[] { "۰" , "۱" , "۲" , "۳" , "۴" ,
"۵" , "۶" , "۷" , "۸" , "۹" };
public static String toPersianNumber( String text ) {
if (text.isEmpty()) {
return "";
}
String out = "";
int length = text.length();
for ( int i = 0 ; i < length ; i++ ) {
char c = text.charAt( i );
if ('0' <= c && c <= '9') {
int number = Integer.parseInt( String.valueOf( c ) );
out += persianNumbers[number];
} else if (c == '٫') {
out += '،';
} else {
out += c;
}
}
return out;
}
}
من روی کدی که دادی امتحان هم کردم درست کار کرد
موفق باشی
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .