如何保持我的Java Android代码简短?

时间:2012-02-01 16:27:41

标签: android button android-edittext repeat

您好我正在使用EditText开发Android应用程序,并使用add en minus按钮来控制它的值。 我现在正在使用它,但我想重复它到多个值。我知道我可以用不同的变量重复代码,但代码会非常大。

任何人都知道如何为多个值重复相同的代码?

这是我目前的代码:

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 个答案:

答案 0 :(得分:3)

您应该重构OnClickListeners,以便它们是通用的。可能最简单的方法是将addValue()方法更改为addValue(View v),将minusValue()更改为minusValue(View v)。然后,在布局xml中,添加属性android:onClick=addValueandroid:onClick=minusValue。你必须更新方法体,以便它们检查视图的id并根据它做正确的事情,但你不必在onCreate方法中创建和设置一大堆OnClickListeners - 你会得到它免费。