0

最初のedittextフィールド(その下にある他の3つのうち)にフォーカスを設定できません。コードは次のとおりです。

k1_e=(EditText)findViewById(R.id.k1_editText);
k1_e.requestFocusFromTouch();
try{
k1=Float.parseFloat(k1_e.getText().toString());
}catch(Exception e) {
    Log.e("logtag", "Exception: " + e.toString());
}
k2_e=(EditText)findViewById(R.id.k2_editText);
try{
    k2=Float.parseFloat(k2_e.getText().toString());
}catch(Exception e) {
    Log.e("logtag", "Exception: " + e.toString());
}
al_e=(EditText)findViewById(R.id.al_editText);
try{
    al=Float.parseFloat(al_e.getText().toString());
}catch(Exception e) {
    Log.e("logtag", "Exception: " + e.toString());
}
alconst_e=(EditText)findViewById(R.id.al_const_editText);
try{
    al_const=Float.parseFloat(alconst_e.getText().toString()); 
}catch(Exception e) {
    Log.e("logtag", "Exception: " + e.toString());
}

アプリがエミュレーターで実行されると、フォーカスが最後のedittextフィールドに自動的に設定され、例外が次のようにスローされます。

12-29 08:10:05.241: E/logtag(769): Exception: java.lang.NumberFormatException: Invalid float: ""
12-29 08:10:05.261: E/logtag(769): Exception: java.lang.NumberFormatException: Invalid float: ""
12-29 08:10:05.261: E/logtag(769): Exception: java.lang.NumberFormatException: Invalid float: ""
12-29 08:10:05.271: E/logtag(769): Exception: java.lang.NumberFormatException: Invalid float: ""

エラーは何ですか。私は初心者です。plsヘルプ

4

1 に答える 1

1

k1_e.getText()。toString()はString、変換されたFloatを返すことができません

すべてのためにこれを試してください:

これを int flag = 0;して、あなたのクラスにゴバルを作ってください。getviewを初めて実行するときは、フラグを1にします。

このような:

int flag = 0;

  getView()
{
if(flag == 0)
{
k1_e.requestFocusFromTouch();flag = 1;
}
  string abc = k1_e.getText().toString()
        if(abc != null && !abc.equals(""))
        {
         k1=Float.parseFloat(k1_e.getText().toString());
        }
    else
    {
      k1 = 0.0;
    }

}
于 2012-12-29T08:31:20.120 に答える