1

在我的应用程序中,我在 TextView 中显示了一些压力值,我也想将这些值写入 xml 文件中。当任何 MotionEvent 生成时,我的意思是每次值发生变化时我都在触摸屏幕,并且我想在每次更改发生后写入它们。并且该 xml 文件将保存到 sdcard(任何位置)中。这是我的代码片段 public class MainActivity extends Activity implements View.OnTouchListener {

        /** Called when the activity is first created. */

     private TextView tvConsole;

        @Override
        public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     findViewById(R.id.linearLayout1).setOnTouchListener(this);

     tvConsole = (TextView)findViewById(R.id.txtConsole2);
        }

        @Override
        public boolean onTouch(View view, MotionEvent mEvent) {
        tvConsole.setText( ""+mEvent.getPressure() );


    // System.out.println("Hardware X " + mEvent.getXPrecision()
      //* mEvent.getX());
    // System.out.println("Hardware Y " + mEvent.getYPrecision()
     // * mEvent.getY());
     System.out.println("Pressure " + mEvent.getPressure());
     System.out.println("Size " + mEvent.getSize());          
     return super.onTouchEvent(mEvent);
        }

}
4

1 回答 1

1

我认为,对您来说最好的解决方案是使用SharePreferences. 请仔细阅读文档。

如何去做,很简单。首先,声明您的 SharedPreference 实例。

SharedPreferences sharedPrefs = getApplicationContext().getSharedPreferences("pressure_values", Context.MODE_PRIVATE);

pressure_values.xml这将在文件夹中创建一个名为 的 XML 文件/data/data/YOUR_PACKAGE_NAME/shared_prefs/。此文件将仅对您自己的应用程序私有。

现在将详细信息添加到上面创建的 XML 文件中:

Editor editor; = sharedPrefs.edit();

// ADD THE DETAILS TO THE PREFERENCES FILE
editor.putString("Hardware_X", mEvent.getXPrecision());
editor.putString("Hardware_Y", mEvent.getYPrecision());
editor.putString("Pressure", mEvent.getPressure());
editor.putString("Size", mEvent.getSize());

// COMMIT THE ABOVE DATA TO THE PREFERENCE FILE
editor.commit(); // THIS IS VERY IMPORTANT. DO NOT SKIP THIS. THE DATA WILL NOT PERSIST WITHOUT THIS STATEMENT

注意:您需要在onTouch(). 这将确保将新值写入 XML 文件。

如果值(例如mEvent.getXPrecision():)不是字符串,请在运行上面发布的代码之前将它们转换为字符串。

要再次检索值:

String strHardWareX = sharedPrefs.getString("Hardware_X", null);
String strHardWareY = sharedPrefs.getString("Hardware_Y", null);
String strPressure = sharedPrefs.getString("Pressure", null);
String strSize = sharedPrefs.getString("Size", null);

现在,您可以使用Strings来执行您的功能,例如,在TextView实例中显示值。

如果您将再次访问这些值,请不要忘记SharedPreferences再次实例化。

SharedPreferences sharedPrefs = getApplicationContext().getSharedPreferences("pressure_values", Context.MODE_PRIVATE);
于 2013-04-13T09:28:51.980 回答