簡體   English   中英

通用輸入和輸出語句

[英]Common input and output statements

在我的應用程序中,我有兩個按鈕。 我正在接受輸入,並根據單擊的按鈕顯示輸出。 但是,為此,我必須在按鈕的每個OnClickListener()中編寫輸入和輸出語句。 這使代碼變得龐大。 有什么方法可以編寫常見的輸入和輸出語句。

我當前的代碼看起來像這樣。

Button1.setOnClickListener(new View.onClickListener() {
    public void onClick(View arg0) {
        input();
        process1();
        output();
    }
});

Button2.setOnClickListener(new View.onClickListener() {
    public void onClick(View arg1) {
        input();
        process2();
        output();
    }
});

我希望我的代碼是這樣的:

input();
Button1.setOnClickListener(new View.onClickListener() {
    public void onClick(View arg0) {
        process1();
    }
});

Button2.setOnClickListener(new View.onClickListener() {
    public void onClick(View arg1) {
        process2();
    }
});
output();

這可能嗎 ? 如果是,那怎么辦? 如果沒有,那為什么呢?

謝謝 !

編輯:

input()是: input = Double.parseDouble(inputString.getText().toString());

output()是: outputString.setText(String.valueOf(output));

inputoutputdouble並且已經定義。

輸出從輸入由簡單的算術計算process1()process2()

inputStringEditTextoutputStringTextView

不確定是否值得這樣做,但是您可以創建實現OnClickListener的抽象類BaseListener onClick方法如下所示:

public void onClick(View arg1) 
{
    input();
    process();
    output();
}

process()將是一種抽象方法。

每個Button都有一個擴展BaseListener並實現process()的偵聽器。

例如 :

Button1.setOnClickListener(new BaseListener () {
    protected void process() {
        process1();
    }
});

不是最好的方法,但是您可以提取一個方法:

void process(int btn) {
   input();
   if(btn == 1) process1();
   else if (btn == 2) process2();
   output();
}

並這樣稱呼:

Button1.setOnClickListener(new View.onClickListener() {
   public void onClick(View arg0) {
      process(1);
   }
});

Button2.setOnClickListener(new View.onClickListener() {
   public void onClick(View arg1) {
      process(2);
   }
});

這可以通過很多方式來完成……在某種程度上就是這樣。

Button1.setOnClickListener(onClickListener);
Button2.setOnClickListener(onClickListener);
View.OnClickListener onClickListener = new OnClickListener() {

    @Override
    public void onClick(View view) {
        input();
        switch (view.getId()) {
        case R.id.button1:
            process1();
            output();
            break;
        case R.id.button2:
            process2();
            break;

        }
        output();
    }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM