2011-03-17 47 views
0

public void calcul() FinalEditText vol; final EditText kil; final EditText缺点; context = getApplicationContext(); vol =(EditText)findViewById(R.id.volume2); kil =(EditText)findViewById(R.id.kilometrage2); cons =(EditText)findViewById(R.id.consom2);必须在按钮中点击2次以获得结果

final Button button = (Button) findViewById(R.id.button); 

button.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 

String value1 = vol.getText().toString(); 
String value2 = kil.getText().toString(); 


        if (value1 != null && /*value1.trim().length() > 0 &&*/ value2 != null /*&& value2.trim().length() > 0*/) 
        { 
          float q1=Float.parseFloat(vol.getText().toString()); 
          float q2=Float.parseFloat(kil.getText().toString()); 
          float x=((q1/q2)* 100); 
          String y= Float.toString(x); 
          cons.setText(y); 

          SimpleDateFormat format = new SimpleDateFormat("dd/MM"); 
           String date = format.format(new Date()); 
           data = date + " : " + y + "L/100KM"+ " " + value1 + "L "+ value2 + "KM\n"; 
     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 
     if (data != "") { 
     String fileName = getResources().getString(R.string.fileName); 
     String fileDir = ""+ preferences.getString("login", "") + "."+ preferences.getString("marque", "") + "."; 
     myIO.WriteSettings(context, fileDir + fileName, data); 
     data = ""; 

     Toast.makeText(carburant.this, "Donnée ajoutée!", Toast.LENGTH_SHORT).show(); 
           } 

        } 
        else 
        { 
        Toast.makeText(carburant.this, "Veuillez vérifier les deux champs", Toast.LENGTH_SHORT).show(); 
        } 
    } 

});

WriteSettings方法:

public class myIO { 
public static void WriteSettings(Context context, String nom, String data) { 
    FileOutputStream fOut = null; 
    OutputStreamWriter osw = null; 

    try { 
     fOut = context.openFileOutput(nom, Context.MODE_APPEND); 
     osw = new OutputStreamWriter(fOut); 
     osw.write(data); 
     osw.flush(); 
     osw.close(); 
     fOut.close(); 

    } catch (Exception e) { 
     Toast.makeText(context, "Echec", Toast.LENGTH_SHORT).show(); 
    } finally { 
     try { 
      osw.close(); 
      fOut.close(); 
     } catch (IOException e) { 
      Toast.makeText(context, "Echec", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 
+0

你是否正在写入文件? – 2011-03-17 15:09:39

+0

是的,我会在第一篇文章中添加WriteSettings方法。 – androniennn 2011-03-17 15:13:31

回答

0

如何将代码段被调用?什么是value1/value2?如果这是单击事件,则可能是第一次单击时value1或value2为空值,从而阻止更改任何设置。

+0

我认为它是一个监听器的onClick事件的内部,因为他有});在底部,但他没有看到顶部。 – FoamyGuy 2011-03-17 15:07:15

+0

@DMags,@Tim:我用整个功能编辑了我的第一篇文章!谢谢你试图帮助我:)。 – androniennn 2011-03-17 15:10:14

+0

不客气:)你确定你应该在GetText()之后使用toString()函数作为value1/value2吗?我相信这是为了获取类名,而不是转换为字符串类型(尽管如果函数被重载,我可能是错的)。另外,vol和kil的值是多少? – DMags 2011-03-17 15:13:09

相关问题