在我的应用程序中,我在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);
}
}
答案 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);