在android中创建并写入xml文件

时间:2013-04-13 09:13:47

标签: android xml motionevent

在我的应用程序中,我在TextView中显示一些压力值,我也想在xml文件中写入这些值。虽然任何MotionEvent都会生成,但我的意思是每次我在触摸屏幕时值都会发生变化,我想在每次更改发生后编写它们。并且该xml文件将保存到SD卡(任何位置)。这是我的代码的snipet 公共类MainActivity extends Activity实现了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);
        }

}

1 个答案:

答案 0 :(得分:1)

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

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

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

这将在pressure_values.xml文件夹中创建名为/data/data/YOUR_PACKAGE_NAME/shared_prefs/的XML文件。此文件仅限于您自己的应用。

现在将详细信息添加到上面创建的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);