1

フィールド 1 が edittextで、フィールド 2 が textfieldであるこのアプリケーションがあります。 ここに画像の説明を入力

edittext フィールドに入力されたデータに応じて、テキストビューに日付を追加したいと考えています。それは、edittext フィールドにデータを入力した後です。次の edittext フィールドに移動すると、最初の edittext フィールドのテキストビューを更新する必要があります。add textchangedlistener については知っていますが、それが解決策である場合、どのように実装する必要がありますか。

編集: setonfocuschanged を試しましたが、うまくいきませんでした

k1_e.setOnFocusChangeListener(new View.OnFocusChangeListener() {

        @Override
        public void onFocusChange(View arg0, boolean arg1) {
            // TODO Auto-generated method stub
            if((v_k1>=5.63)&&(v_k1<=11.25)){
                k1_m.setText("mm");
            }else if((v_k1>=30)&&(v_k1<=60)){
                k1_m.setText("D");
            }

        }
    });
    k2_e.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            // TODO Auto-generated method stub
            if((v_k2>=5.63)&&(v_k2<=11.25)){
                k2_m.setText("mm");
            }else if((v_k2>=30)&&(v_k1<=60)){
                k2_m.setText("D");
            }
        }
    });

編集2: 詳細はこちら

dr=Float.parseFloat(dr_e.getText().toString());
    k1=Float.parseFloat(k1_e.getText().toString());
    k2=Float.parseFloat(k2_e.getText().toString());
    al=Float.parseFloat(al_e.getText().toString());
    al_const=Float.parseFloat(alconst_e.getText().toString());

    v_k1=Float.valueOf(k1);
    v_k2=Float.valueOf(k2);

編集 3: を使用して edittext フィールドにデータを取得します

if(dr_e.getText().toString().length()==0|k1_e.getText().toString().length()==0|k2_e.getText().toString().length()==0|al_e.getText().toString().length()==0|alconst_e.getText().toString().length()==0){
        flag=1;
    }else{

    dr=Float.parseFloat(dr_e.getText().toString());
    al=Float.parseFloat(al_e.getText().toString());
    al_const=Float.parseFloat(alconst_e.getText().toString());



    }
4

1 に答える 1

1

これを試して、編集テキストで onFocusChangeListener を使用できます

  k1_e.setOnFocusChangeListener(new View.OnFocusChangeListener() {

        public void onFocusChange(View arg0, boolean arg1) {
                       String data=k1_e.getText().toString().trim();
             if(data.length!=0)
              {
                      k1=Float.parseFloat(data);
                       v_k1=Float.valueOf(k1);
             if((v_k2>=5.63)&&(v_k2<=11.25)){
                                  k2_m.setText("mm");
                                }else if((v_k2>=30)&&(v_k1<=60)){
                           k2_m.setText("D");
                        }
        }
                 }
    });
于 2013-03-31T13:07:34.330 に答える