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

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

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

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

Android

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

Android Studio

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

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

Q&A

3回答

1293閲覧

シンボルを見つけられませーん!!

kimuradayon

総合スコア11

Java

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

Android

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

Android Studio

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

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

0グッド

1クリップ

投稿2018/04/27 01:19

下のプログラミングコードをRunすると、エラー: シンボルを見つけられません
シンボル: メソッド getActivity()
場所: クラス ListViewSample2Activity.DialogButtonClickListener
と表示されてしまいます。ネットで調べると、どこかのソースコードが間違っているの言われていたのですが、どこか文字が間違っているのでしょうか。

package com.websarva.wing.android.listviewsample2;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Switch;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class ListViewSample2Activity extends AppCompatActivity {

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list_view_sample2); ListView lvMenu = findViewById(R.id.lvMenu); List<String> menuList = new ArrayList<>(); menuList.add("唐揚げ定食"); menuList.add("ハンバーグ定食"); menuList.add("生姜焼き定食"); menuList.add("ステーキ定食"); menuList.add("野菜炒め定食"); menuList.add("とんかつ定食"); menuList.add("ミンチかつ定食"); menuList.add("チキンカツ定食"); menuList.add("コロッケ定食"); menuList.add("焼き魚定食"); menuList.add("焼肉定食"); ArrayAdapter<String> adapter = new ArrayAdapter<>(ListViewSample2Activity.this, android.R.layout.simple_list_item_1, menuList); lvMenu.setAdapter(adapter); lvMenu.setOnItemClickListener(new ListItemClickListener()); } private class ListItemClickListener implements AdapterView.OnItemClickListener{ @Override public void onItemClick(AdapterView<?> parent, View view, int position,long id){ OrderConfirmDialogFragment dialogFragment = new OrderConfirmDialogFragment(); dialogFragment.show(getSupportFragmentManager(),"OrderConfirmDialogFragment"); } } public class OrderConfirmDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.dialog_title); builder.setMessage(R.string.dialog_msg); builder.setPositiveButton(R.string.dialog_btn_ok, new DialogButtonClickListener()); builder.setNegativeButton(R.string.dialog_btn_ng, new DialogButtonClickListener()); builder.setNeutralButton(R.string.dialog_btn_nu, new DialogButtonClickListener()); AlertDialog dialog = builder.create(); return dialog; } } private class DialogButtonClickListener implements DialogInterface.OnClickListener{ @Override public void onClick(DialogInterface dialog, int which){ String msg =""; switch(which) { case DialogInterface.BUTTON_POSITIVE: msg = getString(R.string.dialog_ok_toast); break; case DialogInterface.BUTTON_NEGATIVE: msg = getString(R.string.dialog_ng_toast); break; case DialogInterface.BUTTON_NEUTRAL: msg = getString(R.string.dialog_nu_toast); break; } Toast.makeText(getActivity(), msg, Toast.LENGTH_LONG).show(); } }

}

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

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

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

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

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

m.ts10806

2018/04/27 01:34

最初からkimuradayonさん以外に依頼はしていません。
dit.

2018/04/27 02:17

以前の質問でも指摘されていたようですが、teratailにはコードを見やすくするためのしくみがあります。質問の編集画面から、コードの部分を選択して<code>ボタンを押してください。PCであれば右側にどのように表示されるのかというプレビューが出ると思います。
guest

回答3

0

結論から言うと、次のように変更してください。

java

1Toast.makeText(getActivity(), msg, Toast.LENGTH_LONG).show(); 2getApplicationContext() 3Toast.makeText(ListViewSample2Activity.this, msg, Toast.LENGTH_LONG).show(); 4or 5Toast.makeText(ListViewSample2Activity.this.getApplicationContext(), msg, Toast.LENGTH_LONG).show();

解説

通常メソッドは、staticメソッドでなければインスタンス参照.メソッド(引数)で起動しますが、
インスタンス参照が省略されている場合は、this、つまり「自分自身」が省略されていると解釈されます。

では、この状況でgetActivity()を呼ぶと、thisは何になるのか?
答えはこの命令を直接含むクラスであるDialogButtonClickListenerのインスタンスです。
このクラスにgetActivity()というメソッドは定義されていないため、「シンボルが見つからない」ということになるのです。

今このクラスはListViewSample2Activityの内部クラスという位置づけになります。
ほしいのはDialogButtonClickListenerの外部クラスに当たるListViewSample2Activityのインスタンスであるため、このような宣言が必要になるのです。

投稿2018/04/27 01:35

編集2018/04/27 01:47
swordone

総合スコア20651

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

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

kimuradayon

2018/04/27 01:45

エラー: シンボルを見つけられません シンボル: メソッド getActivity() と表示されてしまいました。
guest

0

getActivity()が取得できないのが原因です。

該当箇所を、getApplicationContext()にすればエラーはなくなります。

投稿2018/04/27 01:26

webarata3

総合スコア367

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

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

0

同じ本を持っています。
setContentView(R.layout.activity_list_view_sample2);

setContentView(R.layout.activity_main);
に変更するか、
activity_mainをリファクリングしてファイル名をactivity_list_view_sample2にして下さい。

投稿2020/04/03 10:39

masakifukuta

総合スコア58

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問