Как я могу сохранить мой код Java Android коротким? - PullRequest
0 голосов
/ 01 февраля 2012

Привет! Я разрабатываю приложение для Android, используя EditText и кнопку «Добавить в минус» для управления его значением.Я получил это работает сейчас, но я хочу повторить это для нескольких значений.Я знаю, что могу просто повторить код с разными переменными, но код будет очень большим.

Кто-нибудь знает, как повторить один и тот же код для нескольких значений?

Это мой текущий код:

package com.lars.MyApp;

import com.lars.MyApp.R;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.view.View;
import android.view.View.OnClickListener;


public class MyAppActivity extends Activity {

    int currentValue = 0;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final EditText Value = (EditText) findViewById(R.id.Value);
        Button addButton = (Button) findViewById(R.id.addButton);
        Button minusButton = (Button) findViewById(R.id.minusButton);

        addButton.setOnClickListener(new OnClickListener(){

            public void onClick(View v) {
                addValue();
                Value.setText("" + currentValue);
            }

        });

        minusButton.setOnClickListener(new OnClickListener(){

            public void onClick(View v) {
                minusValue();
                Value.setText("" + currentValue);
            }

        });


    }

    public void addValue(){
        if(currentValue <= 999){
        currentValue = currentValue + 1;
        }
    }  

    public void minusValue(){
        if(currentValue >= 1){
            currentValue = currentValue - 1;
        }
    }  

}

1 Ответ

3 голосов
/ 01 февраля 2012

Вам следует провести рефакторинг ваших OnClickListener, чтобы они были общими.Вероятно, самый простой способ сделать это - изменить метод addValue() на addValue(View v), а minusValue() на minusValue(View v).Затем в макете XML добавьте свойство android:onClick=addValue или android:onClick=minusValue.Вам нужно будет обновить тела методов, чтобы они проверяли идентификатор представления и делали правильные действия, основываясь на этом, но вам не придется создавать и устанавливать целую кучу OnClickListeners в методе onCreate - вы получите этобесплатно.

...