2013-04-13 40 views
1

在我的應用程序中,我在TextView中顯示了一些壓力值,我也想在xml文件中寫入這些值。雖然任何MotionEvent都會生成,但我的意思是,每次值改變時我都會觸摸屏幕,並且在每次更改發生後我都要寫入它們。該XML文件將被保存到SD卡(任何位置)。這裏是我的代碼 公共類MainActivity的snipet延伸活動實現View.OnTouchListener {在android中創建和編寫一個xml文件

 /** 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

你已經告訴我們你想要什麼,但你沒有問過問題。 – Simon

+0

哦,我真的忘了問這個問題。對不起。 :( 其實我會問如何在xml文件中編寫這些文件?因爲我不知道如何在任何xml文件中編寫代碼:| – MetaRs

回答

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); 
+0

做完了,但沒有創建文件,因爲沒有包名稱在手機中!!!我錯過了什麼嗎? – MetaRs

+0

@Rasam:你的手機是否已經植根?如後文所述,它是在系統分區中創建的,無法在沒有root的情況下訪問。可以放心,文件是否有功能,因爲它應該。:-) –

+0

是根植。但是/ data文件夾中沒有顯示任何內容。 – MetaRs