0

所以我创建了一个基本的转换器应用程序,可以将英里转换为公里。在应用程序中,用户可以在英里编辑文本或公里编辑文本中输入值。输入一个值并按下“转换”按钮后,该值被转换并相应地显示。我真正想做的是删除转换按钮,以便在用户同时输入输入时完成转换。我做了一些研究,发现了有关 textlistener 的信息,但在实施时惨遭失败。

所以我想保留按钮,然后走一条不同的路线。例如,我想要做的是,如果用户首先在英里编辑文本上输入值并将其转换为公里。然后当用户按下公里编辑文本时,我希望英里和公里上的编辑文本都是空白的,这样用户就不必一直擦除这些值。

我想了很多。我可以做到,但我对将代码放在哪里感到困惑,因为我只创建了一种方法,即 convertLength()。

我很困惑,所以任何帮助将不胜感激。:)

package com.abhinavbhatta.converter;
import android.os.Bundle;
public class ConvertLength extends Activity {
    Button clength;
    EditText mi;
    EditText km;

    double milesValue;
    double kmValue;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_convert_length);

}       


public void convertLength(View view){
    clength = (Button) findViewById(R.id.clength);

    mi = (EditText) findViewById(R.id.et_mi);
    km = (EditText) findViewById(R.id.et_km);       

    Intent intentLength = getIntent();

    if (mi.isFocused()){

        milesValue = Double.parseDouble(mi.getText().toString());
        kmValue = milesValue * 1.6;
        km.setText( String.format( "%.2f", kmValue ) );


    }

    if (km.isFocused()){
        kmValue = Double.parseDouble(km.getText().toString());
        milesValue = kmValue/(1.6);
        mi.setText( String.format( "%.2f", milesValue ) );      

    }

}



public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.convert_length, menu);
    return true;
}

}
4

2 回答 2

0

我认为您可以使用 TextWatcher 来执行一些动态操作。

阅读此其他答案以了解更多信息。:)

需要带有只读缩进的 EditText

于 2013-05-23T16:09:57.227 回答
0

您可以发布用于重置值的代码...或者您可以尝试以下操作:

EditText edit;
edit.setText(null);
于 2013-05-23T16:13:30.787 回答