2012-02-01 13 views
0

嗨我正在開發一個使用EditText的Android應用程序,並添加en減號按鈕來控制它的值。 我現在正在工作,但我想重複它的多個值。我知道我可以用不同的變量重複代碼,但代碼會非常大。如何保持我的Java Android代碼短?

任何想法如何重複多個值相同的代碼?

這是我當前的代碼:

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

哪些代碼?將ID傳遞給執行相同工作的方法。我不清楚你想要重構什麼。 – 2012-02-01 16:29:47

回答

3

你應該重構你的OnClickListeners讓他們通用的。可能最容易的方法是將addValue()方法更改爲addValue(View v)minusValue()minusValue(View v)。然後,在佈局xml中,您添加一個屬性android:onClick=addValueandroid:onClick=minusValue。你必須更新方法體,以便他們檢查視圖的id並根據它做正確的事情,但是你不必在onCreate方法中創建和設置一大堆OnClickListeners - 你會得到免費。