2011-10-26 43 views
0

我有一個Android開發的加速計應用程序,我想用「開始」和「停止」按鈕啓動和停止活動。我在執行代碼本身的按鈕時遇到困難,我正在尋求一些幫助。這是我的主要Java文件。使用按鈕啓動和停止進程

package com.*****.accelo; 



import android.app.Activity; 

import android.content.Context; 

import android.hardware.Sensor; 

import android.hardware.SensorEvent; 

import android.hardware.SensorEventListener; 

import android.hardware.SensorManager; 

import android.os.Bundle; 

import android.widget.TextView; 

import android.widget.Button; 

import android.view.View.OnClickListener; 



public abstract class AcceloActivity extends Activity implements SensorEventListener, 
OnClickListener { 



TextView textViewX, textViewY, textViewZ, textViewError; 
String blank; 
Button buttonStop, buttonStart; 

StringBuilder builderx = new StringBuilder(); 
StringBuilder buildery = new StringBuilder(); 
StringBuilder builderz = new StringBuilder(); 




public void onCreate(Bundle savedInstanceState){ 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

    textViewError = (TextView) findViewById(R.id.textViewError); 
    textViewX = (TextView) findViewById(R.id.textViewX); 
    textViewY = (TextView) findViewById(R.id.textViewY); 
    textViewZ = (TextView) findViewById(R.id.textViewZ); 
    buttonStart = (Button) findViewById(R.id.buttonStart); 
    buttonStop = (Button) findViewById(R.id.buttonStop); 

    //Button listener 
    buttonStart.setOnClickListener(this); 
    buttonStop.setOnClickListener(this); 




    SensorManager manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 

    Sensor accelerometer = manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 

     if(!manager.registerListener(this, accelerometer, 
SensorManager.SENSOR_DELAY_UI)){ 



     } 

textViewX.setText(blank); 
textViewY.setText(blank); 
textViewZ.setText(blank); 
} 




public void onAccuracyChanged(Sensor sensor, int accuracy) { 



} 



public void onSensorChanged(SensorEvent event) { 

    builderx.setLength(0); 
    buildery.setLength(0); 
    builderz.setLength(0); 

    builderx.append("X: " + event.values[0]); 
    buildery.append("Y: "+ event.values[1]); 
    builderz.append("Z: " + event.values[2]); 

    textViewX.setText(builderx.toString()); 
    textViewY.setText(buildery.toString()); 
    textViewZ.setText(builderz.toString()); 
    textViewError.setText(blank); 

} 

在此先感謝!

回答

1

您從資源中獲取按鈕的引用,然後從不執行任何操作。你的意思是「執行中遇到麻煩」?如果您遇到特定問題或遇到錯誤,請將該信息添加到問題中,以便我們爲您提供幫助。如果你只是不知道如何在Android上使用按鈕,網上有很多很棒的網站,但你應該從這裏開始http://developer.android.com/reference/android/widget/Button.html

[編輯]

因爲這是你的第一語言,第一次嘗試得到這樣的工作,讓我們來看看幾個簡單的步驟來開始,然後你可以從那裏展開。

我認爲谷歌搜索的答案是在這一點上幾乎自反的,但這裏有幾個不錯的地方做一些閱讀:

一般來說,您需要做的是覆蓋onTouchEvent的按鈕http://developer.android.com/guide/topics/ui/ui-events.html所以你可以處理用戶輸入,然後記錄/比較你感興趣的值。從你提到的你想要做的事情我不確定擴展SensorEventListener是否真的是你想要的。如果您只是想捕捉按鈕點擊從開始到停止的變化,您只需處理按鈕事件並記錄/分析/顯示數據,而無需擔心個別傳感器更新。另一方面,如果您確實想在「開始」和「停止」之間顯示「實時」傳感器數據,則可能需要SensorEventListener。

請仔細閱讀Google教程和API指南,查看盡可能多的示例,您應該可以找到自己想要的東西。祝你的項目好運。

+0

更新後的代碼,但仍不清楚如何實際使用按鈕來啓動傳感器偵聽器並結束它。 – Slicekick

+0

@Slicekick - 編輯提供關於開始使用您的項目的一些想法。 – Carth

+0

@Slicekick - 我不相信你會啓動和停止傳感器監聽器。您從傳感器註冊並取消註冊您的聽衆。傳感器本身繼續。你的應用程序只是停止關注它。 http://developer.android.com/reference/android/hardware/SensorManager.html – Carth

相關問題