2

私は5つのeditTextと各editTextに2つのボタンを持っているので、そのうちの10個です。それぞれが特定のeditTextをインクリメント/デクリメントすることになっています。これで私のコードは完全に機能しますが、すぐにわかるように、効率的ではなく、分が含まれているはずのeditTextsの数値が0〜59(n分に設定できる時計)の間にあることさえ確認されません。とにかく、私はこれを適切に行うための最良または最も効率的な方法を知りたいだけです。

私のアイデアは、インクリメント/デクリメントする特定のeditTextや、加算または減算するかどうかの別のパラメーターなどのパラメーターを受け取る別のメソッドを持つことでしたが、OnClickListener()にはpublic void onClick()が必要なため、実装についてはわかりません。 v)メソッドを表示します。

ありがとう!

コード:

package com.clock;

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

public class addCourse extends Activity {

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

    final Button save_Button = (Button) findViewById(R.id.addSave);
    final Button cancel_Button = (Button) findViewById(R.id.addCancel);
    final Button higherNumber_Button = (Button) findViewById(R.id.higherNumber_Button);
    final Button lowerNumber_Button = (Button) findViewById(R.id.lowerNumber_Button);
    final Button higherClasshh_Button = (Button) findViewById(R.id.higherClasshh_Button);
    final Button lowerClasshh_Button = (Button) findViewById(R.id.lowerClasshh_Button);
    final Button higherClassmm_Button = (Button) findViewById(R.id.higherClassmm_Button);
    final Button lowerClassmm_Button = (Button) findViewById(R.id.lowerClassmm_Button);
    final Button higherClockhh_Button = (Button) findViewById(R.id.higherClockhh_Button);
    final Button lowerClockhh_Button = (Button) findViewById(R.id.lowerClockhh_Button);
    final Button higherClockmm_Button = (Button) findViewById(R.id.higherClockmm_Button);
    final Button lowerClockmm_Button = (Button) findViewById(R.id.lowerClockmm_Button);
    final EditText courseCredits_Edit = (EditText) findViewById(R.id.courseCredits_Edit);
    final EditText hhClass_Edit = (EditText) findViewById(R.id.classHours_Edit);
    final EditText mmClass_Edit = (EditText) findViewById(R.id.classMins_Edit);
    final EditText hhClock_Edit = (EditText) findViewById(R.id.clockHours_Edit);
    final EditText mmClock_Edit = (EditText) findViewById(R.id.clockMins_Edit);

    higherNumber_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            int a = Integer.parseInt(courseCredits_Edit.getText().toString());
            ++a;
            courseCredits_Edit.setText(a + "");
        }
    });

    lowerNumber_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            int a = Integer.parseInt(courseCredits_Edit.getText().toString());
            --a;
            courseCredits_Edit.setText(a + "");
        }
    });

    higherClasshh_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            int a = Integer.parseInt(hhClass_Edit.getText().toString());
            ++a;
            hhClass_Edit.setText(a + "");
        }
    });

    lowerClasshh_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            int a = Integer.parseInt(hhClass_Edit.getText().toString());
            --a;
            hhClass_Edit.setText(a + "");
        }
    });

    higherClassmm_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            int a = Integer.parseInt(mmClass_Edit.getText().toString());
            ++a;
            mmClass_Edit.setText(a + "");
        }
    });

    lowerClassmm_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            int a = Integer.parseInt(mmClass_Edit.getText().toString());
            --a;
            mmClass_Edit.setText(a + "");
        }
    });

    higherClockhh_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            int a = Integer.parseInt(hhClock_Edit.getText().toString());
            ++a;
            hhClock_Edit.setText(a + "");
        }
    });

    lowerClockhh_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            int a = Integer.parseInt(hhClock_Edit.getText().toString());
            --a;
            hhClock_Edit.setText(a + "");
        }
    });

    higherClockmm_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            int a = Integer.parseInt(mmClock_Edit.getText().toString());
            ++a;
            mmClock_Edit.setText(a + "");
        }
    });

    lowerClockmm_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            int a = Integer.parseInt(mmClock_Edit.getText().toString());
            --a;
            mmClock_Edit.setText(a + "");
        }
    });

    save_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks

        }
    });

    cancel_Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            finish();
        }
    });
}

} `

4

1 に答える 1

0

1) xml レイアウトで各ボタンの「タグ」プロパティを使用します。

http://developer.android.com/reference/android/view/View.html

タグ

ID とは異なり、タグはビューの識別には使用されません。タグは基本的に、ビューに関連付けることができる追加の情報です。これらは、ビューに関連するデータを別の構造体に配置するのではなく、ビュー自体に格納するための利便性として最もよく使用されます。

2)xmlでonclickも使用します

 <Button
     android:layout_height="wrap_content"
     android:layout_width="wrap_content"
     android:tag="1"
     android:onClick="doSomething" />

あなたのコードで:

public void doSomething(View v){
    int tag=v.getTag();
    //Do something smart with button, like odd numbers = plus and even = minus.
}

http://developer.android.com/reference/android/view/View.html#getTag ()

プログラムで上記のコードを使用して対応する edittext を取得する場合は、ID を arraylist に保存し、int を操作して対応する EditText を取得します。

于 2011-11-28T19:40:44.770 に答える