امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ساختن ماشین حساب اندرویدی در ایکلیپس بخش دوم
#1
حالا توابع onClick را به صورت زیر تعریف می کنیم:

public void onClick(View arg0) {
        Editable str =  disp.getText();
        switch(arg0.getId()){
            case R.id.one:
                if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                str = str.append(one.getText());
                disp.setText(str);
            break;
            case R.id.two:
                if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                str = str.append(two.getText());
                disp.setText(str);
            break;
            case R.id.three:
                if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                str = str.append(three.getText());
                disp.setText(str);
            break;
            case R.id.four:
                if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                str = str.append(four.getText());
                disp.setText(str);
            break;
            case R.id.five:
                if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                str = str.append(five.getText());
                disp.setText(str);
            break;
            case R.id.six:
                if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                str = str.append(six.getText());
                disp.setText(str);
            break;
            case R.id.seven:
                if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                str = str.append(seven.getText());
                disp.setText(str);
            break;
            case R.id.eight:
                if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                str = str.append(eight.getText());
                disp.setText(str);
 
            break;
            case R.id.nine:
                if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                str = str.append(nine.getText());
                disp.setText(str);
 
            break;
            case R.id.zero:
                if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                str = str.append(zero.getText());
                disp.setText(str);
 
            break;
            case R.id.cancel:
                op1 = 0;
                op2 = 0;
                disp.setText("");
                disp.setHint("Perform Operation Smile");
 
            break;
            case R.id.add:
                optr = "+";
                if(op1 == 0){
                    op1 = Integer.parseInt(disp.getText().toString());
                    disp.setText("");
                }
                else if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                else{
                    op2 = Integer.parseInt(disp.getText().toString());
                    disp.setText("");
                    op1 = op1 + op2;
                    disp.setText("Result : " + Integer.toString(op1));
                }
            break;
            case R.id.sub:
                optr = "-";
                if(op1 == 0){
                    op1 = Integer.parseInt(disp.getText().toString());
                    disp.setText("");
                }
                else if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                else{
                    op2 = Integer.parseInt(disp.getText().toString());
                    disp.setText("");
                    op1 = op1 - op2;
                    disp.setText("Result : " + Integer.toString(op1));
                }
            break;
            case R.id.mul:
                optr = "*";
                if(op1 == 0){
                    op1 = Integer.parseInt(disp.getText().toString());
                    disp.setText("");
                }
                else if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                else{
                    op2 = Integer.parseInt(disp.getText().toString());
                    disp.setText("");
                    op1 = op1 * op2;
                    disp.setText("Result : " + Integer.toString(op1));
                }
            break;
            case R.id.div:
                optr = "/";
                if(op1 == 0){
                    op1 = Integer.parseInt(disp.getText().toString());
                    disp.setText("");
                }
                else if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                else{
                    op2 = Integer.parseInt(disp.getText().toString());
                    disp.setText("");
                    op1 = op1 / op2;
                    disp.setText("Result : " + Integer.toString(op1));
                }
            break;
            case R.id.equal:
                if(!optr.equals(null)){
                    if(op2 != 0){
                        if(optr.equals("+")){
                            disp.setText("");
                            /*op1 = op1 + op2;*/
                            disp.setText("Result : " + Integer.toString(op1));
                        }
                        else if(optr.equals("-")){
                            disp.setText("");/*
                            op1 = op1 - op2;*/
                            disp.setText("Result : " + Integer.toString(op1));
                        }
                        else if(optr.equals("*")){
                            disp.setText("");/*
                            op1 = op1 * op2;*/
                            disp.setText("Result : " + Integer.toString(op1));
                        }
                        else if(optr.equals("/")){
                            disp.setText("");/*
                            op1 = op1 / op2;*/
                            disp.setText("Result : " + Integer.toString(op1));
                        }
                    }
                    else{
                        operation();
                    }
                }
            break;
        }
    }


قطعه کد بالا، رویداد onClick را برای همه دکمه های ما تعریف می کند. دقت داشته باشید که ما از switch استفاده کرده ایم. برای مثال دستورات


case R.id.one:
                if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                str = str.append(one.getText());
                disp.setText(str);
            break;


معنی هر سطر و کاری که انجام می دهد:

سطر ۱: در صورتی دکمه one فشرده شود،

سطر ۲: اگر متغیر op2 برابر با ۰ باشد،

سطر ۳: op2 را برابر با صفر قرار بده.

سطر ۴: disp را خالی کن.

سطر ۶: متن مربوط به one را بگیر و در متغیر str ذخیره کن.

سطر ۷: متن str را در disp نشان بده.

 
دکمه Cancel یا Clear:

            case R.id.cancel:
                op1 = 0;
                op2 = 0;
                disp.setText("");
                disp.setHint("Perform Operation Smile");
 
            break;



اگر این دکمه فشرده شود، ابتدا ۲ متغیر صحیح را برابر با صفر می کند، سپس disp را خالی از متن کرده و متن کم رنگ Perform Operation [img=853x1349]https://s.w.org/images/core/emoji/2/svg/1f642.svg[/img] را در آن می گذارد.

 
دکمه جمع:


            case R.id.add:
                optr = "+";
                if(op1 == 0){
                    op1 = Integer.parseInt(disp.getText().toString());
                    disp.setText("");
                }
                else if(op2 != 0){
                    op2 = 0;
                    disp.setText("");
                }
                else{
                    op2 = Integer.parseInt(disp.getText().toString());
                    disp.setText("");
                    op1 = op1 + op2;
                    disp.setText("Result : " + Integer.toString(op1));
                }
            break;

اگر دکمه + فشرده شود، متغیر optr را برابر با + قرار می دهد. آنگاه اگر، op1 برابر با ۰ باشد، این ۰ را تبدیل به رشته کرده و در disp قرار میدهد. اگر op2 برابر با ۰ باشد، و در آخر ۲ متغیر را جمع کرده و در disp نمایش می دهد.

بقیه عملگرها نیز به همین صورت هستند.

 
ماشین حساب نهایی ما می تواند چیزی شبیه زیر باشد:

[تصویر:  makeacalculator4.jpg]
پاسخ
 سپاس شده توسط eiliya
#2
مرسی جالب بود.
پاسخ
#3
دستتون درد نکنه خیلی جالب بود ،
چطوری میشه حالا یه ماشین حساب پیشرفته تر ساخت
پاسخ
#4
В конце предыдущей недели Биткоин сделалсущественный действие вниз — предварительно годового минимума. Упадок Биткоина теперь продолжилось. Сколько происходит? Повод для торжества скептиков? Или век созидать инвестицию в очень ценный цифровой имущество мира?

Что думают о падение биткоина ныне аналитики?
Часть Ли, один из учредителей Fundstrat Universal Advisors, изменил прогноз.

Ранее Том считал, который тариф Биткоина переживёт упадок для ликвидация 2018 до 25 тыс. долларов.
Теперь предсказывает барыш накануне 15 тыс.
Что этому прогнозу верить уже не хочется. Битва не в разнице цен, а в неактуальности направлений.

Теперь монете уже будто не грозит упадок перед 25 тыс. Ведь цена не пересекал такую отметку.

rust новости обновлений debian iptables


Полдничать сомнения насчёт стремительного роста. Покамест актив не отыграет сценарий двойного иначе тройного дна, up-движению не бывать. Вероятность, сколько ETF для Биткоин одобрят, а не перенесут снова — тает. Других сильных драйверов у монеты нет.

Стивен Иннес, финансист из Оанды, считает, сколько ныне нормативные барьеры чтобы Биткоина, точнее их неимение, способствуют снижению монеты ниже психологического уровня в 5 тыс. долларов. Своё благоусмотрение Стивен объясняет беспричинно:

Моё самочувствие насчёт Биткоина останется медвежьим даже быть цене 1000 USD. Покамест регуляторы и банковская способ сопротивляются росту криптовалютного рынка, превышение оптимизма инвесторов, купивших виртуальные монеты, будет превращаться в разочарование и упадок курса.

Упадок Биткоина ныне: уровень 5000 USD скоро приближается
Валюта Биткоина снизилась для 9,29 % потом короткого относительного спокойствия.
Эфириум и Лайткоин потеряли примерно по 12%.
Биткоин Dough расстался с 9,41 %.
Рыночная капитализация, по данным CoinMarketCap, составляет 167,5 млрд долларов для 19.11.18.
Технические уровни BTC сегодня.

Мне кажется я уже видел это здесь: читы для warface 2018 обновление windows 7 после установки


Коррекция с текущих уровней встретит противодействие продавцов для 5500 и 5560.
Помощь покупателей находится на 5200 и 5050 USD.
Падение Биткоина сегодня момент краткосрочный
Какие желание войны ни шли ныне на рынке криптовалют, ясный — есть позиционная драка крупных трейдеров.
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  ساختن ماشین حساب اندرویدی در ایکلیپس بخش اول fns4565 1 1,299 2017/04/19، 07:33 PM
آخرین ارسال: shilanaseri



کاربرانِ درحال بازدید از این موضوع: 1 مهمان