質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

731閲覧

変数の更新、別のクラスへ受け渡し

uedayuya

総合スコア17

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2017/12/25 05:35

編集2017/12/25 05:52

###前提・実現したいこと
僕はandroidstudioを使ってアプリを作っているのですがoverrideで書いているメソッドの中にある変数を他のクラスで使用したい場合どうすればいいのかわかりません。

変数を更新してそれを他クラスで使えばいいと教えていただいたのですが、変数をリストに入れてそのリストを他クラスで参照するような形を取るのがいいのでしょうか?

ちなみに以下のコードはこちらの本に乗っているサンプルプログラムの使わない部分を省いたもので、実際にダウンロードできます。

###該当のソースコード(受け渡す側です)
onSensorChangedこ中にあるxとyを他のクラスで使いたいです。

java

1import android.content.Context; 2import android.content.pm.ActivityInfo; 3import android.graphics.Canvas; 4import android.graphics.Color; 5import android.graphics.Paint; 6import android.hardware.Sensor; 7import android.hardware.SensorEvent; 8import android.hardware.SensorEventListener; 9import android.hardware.SensorManager; 10import android.os.Bundle; 11import android.support.v7.app.AppCompatActivity; 12import android.util.Log; 13import android.view.SurfaceHolder; 14import android.view.SurfaceView; 15 16 17 18public class MainActivity extends AppCompatActivity 19 implements SensorEventListener, SurfaceHolder.Callback { 20 //SurfaceView生成時のイベントをコールバックで受け取るためにMainActivityにSurfaceHolder.Callback を実装 21 SensorManager mSensorManager; 22 Sensor mAccSensor; 23 SurfaceHolder mHolder; 24 int mSurfaceWidth = 0;//画面の幅 25 int mSurfaceHeight = 0;//画面の高さ 26 float y; 27 float x; 28 29 30 31 32 @Override 33 protected void onCreate(Bundle savedInstanceState) { 34 super.onCreate(savedInstanceState); 35 setContentView(R.layout.activity_main); 36 mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 37 mAccSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION); 38 39 } 40 41 @Override 42 public void onSensorChanged(SensorEvent event) { 43 if (event.sensor.getType() == Sensor.TYPE_GYROSCOPE) { 44 y = event.values[0]; 45 x = event.values[1]; 46 } 47 } 48 49 @Override 50 public void onAccuracyChanged(Sensor sensor, int i) { 51 } 52 53 @Override 54 public void surfaceCreated(SurfaceHolder surfaceHolder) { 55 registerSensor(); 56 } 57 58 public void registerSensor() { 59 mSensorManager.registerListener(this, mAccSensor, SensorManager.SENSOR_DELAY_GAME); 60 } 61 @Override 62 public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { 63 mSurfaceWidth = width; 64 mSurfaceHeight = height; 65 } 66 67 @Override 68 public void surfaceDestroyed(SurfaceHolder surfaceHolder) { 69 mSensorManager.unregisterListener(this); 70 } 71 72} 73

受け取る側では

java

1MainActivity ma = new MainActivity 2float x1 = ma.x; 3float y1 = ma.y;

のように使いたいです。

初めての質問で至らない点があるとは思いますがご教授よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず、Activityはプログラマーがインスタンス化するクラスではありません。あなたが考えているような使い方はできません。
そのため、x,yの値をメソッドの引数として渡すか、クラスにx,yを保持するフィールドとアクセッサメソッドを定義してonSensorChanged内でアクセッサメソッドを使って値を更新してください。

投稿2017/12/25 05:40

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uedayuya

2017/12/25 05:47

ありがとうございます。では質問が見当違いなことを書いているので訂正させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問