PDA

View Full Version : نا توانی در منها



Pam.goudarzi
یک شنبه 23 شهریور 1393, 15:33 عصر
سلام . من میخوام یک متغیر رو منهای متغیر دیگه کنم که موقع منها کردن که می شه، اررور Syntax error on token "-", invalid AssignmentOperator رو میده! چطوری باید منها رو وارد کنم؟

final int height = Integer.parseInt(ed1.getText().toString()); final int number = 105;
Button calculate = (Button) findViewById(R.id.calculate);
calculate.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
height - number;
}
}) ;

Pam.goudarzi
یک شنبه 23 شهریور 1393, 15:35 عصر
هیچی درست شد اما حالا که میخوام جواب بدست اومده رو setttext کنم میگه که z به عنوان یه متغیر وحود نداره!:(
Button calculate = (Button) findViewById(R.id.calculate); calculate.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int z = height - number;
}
}) ;

ideal.setText(z);

tux-world
یک شنبه 23 شهریور 1393, 15:39 عصر
شما متغیر z رو داخل تابع نوشتید برای اینکه دسترسیشون رو به این توابع داخلی مهیا کنید باید خودش رو به صورت فینال تعریف کنید

مثلا

final int z= null
قبل توابع یا اینکه اون رو به صورت متد بالای توابع تعریف کنید

Pam.goudarzi
یک شنبه 23 شهریور 1393, 15:49 عصر
ممنون! حواسم نبود متغیر داخله!

Pam.goudarzi
یک شنبه 23 شهریور 1393, 15:53 عصر
اجرا کردم فورس کلوز داد، گفت که در int ای که در قسمت
final int height = Integer.parseInt(ed1.getText().toString());


گرفتم خطاست. من بصورت رشته درش آوردم چون که بدون این که به حالت رشته درش بیارم خطا می گرفت. و به parseint این خطا رو می گرفت:
The method parseInt(String) in the type Integer is not applicable for the arguments (Editable)

majnoon110
یک شنبه 23 شهریور 1393, 15:53 عصر
دوست عزیز ظاهر قضیه این هست که شما باید این نتیجه رو در یک متغیر بریزید
اگر میخواید در همون متغیر height بریزید باید به این صورت بنویسید:

height -= number;

Pam.goudarzi
یک شنبه 23 شهریور 1393, 15:56 عصر
دوست عزیز ظاهر قضیه این هست که شما باید این نتیجه رو در یک متغیر بریزید
اگر میخواید در همون متغیر height بریزید باید به این صورت بنویسید:

height -= number;
اینجا ریختم!
final int z = height - number;

majnoon110
یک شنبه 23 شهریور 1393, 15:59 عصر
اگر با متغیرهات مشکل داری و به هم ریخته شده. برای اینکه قاطی نکنی اون ها رو قبل از oncreat تعریف کن اینطوری:

private int h,n,z;
و بعد داخل هر بخش از متد oncreate بهشون مقدار بده.

++ اگر هم مقدار ادیت تکست خالی باشه یا عدد نباشه ارور میگیره برای تبدیل به int

Pam.goudarzi
یک شنبه 23 شهریور 1393, 16:01 عصر
دوست عزیز من مشکلم فورس کلوزه! logcat به final int height = Integer.parseInt(ed1.getText().toString());


گیر میده! ممنون

omid.n1990
یک شنبه 23 شهریور 1393, 16:18 عصر
به جای

Integer.parseInt(ed1.getText().toString());

ابتدا
ed1.getText().toString()
رو به درون یک متغییر رشته ای بریزید بعد از تابع Integer.parseInt استفاده کنید ببینید درست میشه یا نه

String s =ed1.getText().toString());

final int height = Integer.parseInt(s);

majnoon110
یک شنبه 23 شهریور 1393, 16:28 عصر
ideal.setText(z);

اینجا هم مشکل داری
باید int ابتدا به رشته تبدیل بشه
اینطوری بنویس


ideal.setText(z+"");

Pam.goudarzi
دوشنبه 24 شهریور 1393, 09:03 صبح
از همه ممنونم! ولی هنوز فورس کلوز میده!123464

majnoon110
دوشنبه 24 شهریور 1393, 09:39 صبح
خب این ظاهرش اینه که داره میگه مقدار تهی به int نسبت دادی

Pam.goudarzi
دوشنبه 24 شهریور 1393, 10:14 صبح
شاید به این علته که اطلاعات رو از EditText می گیره و امکان داره که Edittext خالی باشه!!! چون کدی که برای متغیر عددی گذاشتم این بوده:
final int height = Integer.parseInt(gainedtext);

majnoon110
دوشنبه 24 شهریور 1393, 10:35 صبح
شما باید یک if بذاری و بعد اطلاعات رو از edittext بگیری



if (! txt.gettext().tostring().equals(""){
کدهای مربوط برای تبدیل به int
}

dasssnj
دوشنبه 24 شهریور 1393, 10:51 صبح
شما باید یک if بذاری و بعد اطلاعات رو از edittext بگیری



if (! txt.gettext().tostring().equals(""){
کدهای مربوط برای تبدیل به int
}


کدتون را تصحیح می کنم با اجازه :

if (! txt.gettext().tostring().trim().equals("")){
کدهای مربوط برای تبدیل به int
}

saeed_g21
دوشنبه 24 شهریور 1393, 10:55 صبح
خب این ظاهرش اینه که داره میگه مقدار تهی به int نسبت دادی
فکر کنم میگه مقداری غیر از مقدار int داره یعنی حاوی String ی هست:متفکر:

majnoon110
دوشنبه 24 شهریور 1393, 11:19 صبح
کدتون را تصحیح می کنم با اجازه :

if (! txt.gettext().tostring().trim().equals("")){
کدهای مربوط برای تبدیل به int
}



ممنون دوست عزیز
trim اینجا در اصل چه کاری رو انجام میده؟
من با کد بالا انجام میدادم معمولا جواب میداد

اما اگر با trim کامل تر و بهتره ازین به بعد اینطوری استفاده کنیم.

dasssnj
دوشنبه 24 شهریور 1393, 13:29 عصر
ممنون دوست عزیز
trim اینجا در اصل چه کاری رو انجام میده؟
من با کد بالا انجام میدادم معمولا جواب میداد

اما اگر با trim کامل تر و بهتره ازین به بعد اینطوری استفاده کنیم.


trim فاصله های اول و آخر متن را پاک می کنه و مثلا اگه کابر به جای نوشتن متن فقط چند تا فاصله بنویسه (با کلید Space) دیگه متن خالی نیست اما این متد با حذف فاصله ها و کاراکتر n\ و t\ باعث میشه برنامه از کابر گول نخوره.