آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ست شدن اعداد فارسی...!!!!!!!!!!!

GR  10 سال پیش  10 سال پیش
0 0

بازم سلام

آقا ما از خیر فارسی نشون دادن با درج کاما گذشتیم!!

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

اینجوری:

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

میخوام کلاً انگلیسی باشه! به همراه کاما

(ناگفته نمونه موقعی که دستی عددی توی ادیت تکست دومی وارد میکنم لاتین وارد میشه حتی زمانی ک زبان گوشی فارسیه ولی موقع ست کردن ایجوری میشه)

فونت بکار بردم نشد

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" />

0 0
فونت B nazanin استفاده کنید < کیبورد هم باید فارسی تایپ بشه < یا کاراکتر هارو فیلتر کنید (10 سال پیش)
0 0
دوستم نمیشه من گفتم میخوام فقط انگلیسی تایپ بشه (10 سال پیش)
+1 0
این تاپیک تکرای هست و حذف خواهد شد . (10 سال پیش)
0 0
جوابی نگرفت خب.. حذف نکنید حداقل.شاید کسی بلد باشه جواب بده (10 سال پیش)
0 0
ینی میشه راهی وجود نداشته باشه؟ این همه کار بلد..یکی نیست مارو راهنمایی کنه :( (10 سال پیش)
0 0
امکان درج تاپیک های تکراری وجود ندارد : لینک و لینک (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
HoCoder  10 سال پیش
+1 0

سلام

رفیق شما باید 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;
}
}

من روی کدی که دادی امتحان هم کردم درست کار کرد

موفق باشی


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .