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 に答える