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

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

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

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

Q&A

解決済

2回答

3745閲覧

勉強中です。public class MainActivity extends Activity {内に他のクラスから干渉できますか?

kobo

総合スコア9

Android Studio

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

0グッド

0クリップ

投稿2016/12/25 07:59

###前提・実現したいこと
AndroidStadioで勉強をしています。
ボタンをおしてwebのリンクを表示できるように
教科書に載っていたゲームの中にそれを組み入れたいのです。

###発生している問題・エラーメッセージ
初めはGameView内の ----ここから---のところに
Uri uri = Uri.parse("http://android.roof-balcony.com/intent/browser/")
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
を書きましたが、startActivityに赤の波線がつきました。
次にMainActivityに上記を書きました。(下記状態)
その上でGameViewからlinkInternetを動かそうとしましたら
どうやるのか分らなくなりました。
ボタン自体はスタート画面に絵で書いてあり
スタート画面以外では消えています。
どうやれば、実現ができるのでしょうか。
現在は----ここから---のところに((MainActivity ) Activity).linkInternet();
と書いていますが、) Activity).に
expression expectedと赤の波線がついています。

###現在の関係があると思われる部分のコード
public class MainActivity extends Activity {
・・・・・・
//ボタンを押された処理
public void linkInternet(){
・・・・・
}
}

public class GameView extends View {

//タッチイベント
public boolean onTouchEvent(MotionEvent me){ //タッチイベント
//タッチイベント座標獲得
int x = (int)me.getX();
int y = (int)me.getY();
if(me.getAction() == MotionEvent.ACTION_DOWN){ //タッチを押し込んだ時
switch ( gameState ){
case GAME_START:
if(buttonOn(PrivacyPolicyButton, x, y)){
-----------ここから---------
}
break;
}
}
return true;
}
}

###試したこと
-----------ここから-----
に((MainActivity ) Activity).linkInternet();
を書いてみましたが、Activityに赤色の波線が付いており
なぜ付くかも理解できていません。

###補足情報(言語/FW/ツール等のバージョンなど)
AndroidStadio 2.2.3

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

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

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

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

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

guest

回答2

0

インターフェースを定義し、GameViewからMainActivityへのコールバック処理を作りましょう。

また、コードはコード用の記述に修正してください。

投稿2016/12/25 14:47

yona

総合スコア18155

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

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

kobo

2016/12/26 02:18

分らないこともありますが、調べてやってみます。 「コードはコード用の記述に修正せよ」が何を指しているのか 勉強不足で理解できません。お時間のあるときで構いませんので ご教授頂けると助かります。 ありがとうございました。
yona

2016/12/26 09:08

他の質問と自分の質問を見比べてください。コードの部分が異なりますよね?ヘルプを読みましょう。
guest

0

ベストアンサー

MainActivity.this.startActivity(intent);
でどうでしょう?

投稿2016/12/25 14:22

kaji

総合スコア648

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

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

kobo

2016/12/26 02:18

gameview内に書くとやはり赤波線が付きました。 MainActivityに書くと問題ないですが、やはりgameviewからはうごかせませんでした。 でも、回答頂いたものも大変勉強になりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問