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

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

新規登録して質問してみよう
ただいま回答率
85.51%
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回答

7158閲覧

Android開発におけるイベント発生時の画像の再描画について

退会済みユーザー

退会済みユーザー

総合スコア0

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グッド

0クリップ

投稿2016/08/23 06:20

###前提・実現したいこと
使っている開発ツール:
AndroidStudio

現在教本を参考にしながら簡単なサンプルアプリの改修を
行っているのですが、思ったように動かせません。
やりたいこととしては、
画面上に、押せるなにかしらの画像を配置し、その画像を
タップした際にダイアログメッセージの表示とともに
画像が別の画像に挿げ変わる、という実装をしたいです。

###発生している問題・エラーメッセージ

エラーメッセージ

###該当のソースコード

//ボタンとダイアログ public class ButtonEx extends Activity implements View.OnClickListener{ private final static int WC = LinearLayout.LayoutParams.WRAP_CONTENT; private final static String TAG_MESSAGE = "0"; private final static String TAG_YESNO = "1"; private final static String TAG_TEXT = "2"; private final static String TAG_IMAGE = "3"; private static boolean imgOk = true; private Context context; private int waitperiod = 1000; //アクティビティ起動時に呼ばれる @Override public void onCreate(Bundle bundle){ System.out.println("onCreate実行"); super.onCreate(bundle); requestWindowFeature(Window.FEATURE_NO_TITLE); //レイアウトの生成 LinearLayout layout = new LinearLayout(this); layout.setBackgroundColor(Color.WHITE); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); //ボタンの生成 layout.addView(makeButton("メッセージダイアログの表示", TAG_MESSAGE)); layout.addView(makeButton("Yes/Noダイアログの表示", TAG_YESNO)); layout.addView(makeButton("テキスト入力ダイアログの表示", TAG_TEXT)); if(imgOk == true){ System.out.println("目をつぶる"); layout.addView(makeButton(res2bmp(this, R.drawable.sample), TAG_IMAGE)); }else{ System.out.println("目をひらく"); layout.addView(makeButton(res2bmp(this, R.drawable.sample2), TAG_IMAGE)); } } //疑似再描画用メソッド public void restart(Context cnt, int period){ // intent 設定で自分自身のクラスを設定 Intent buttonEx = new Intent(cnt, ButtonEx.class); // PendingIntent , ID=0 PendingIntent pendingIntent = PendingIntent.getActivity(cnt, 0, buttonEx, PendingIntent.FLAG_CANCEL_CURRENT); // AlarmManager のインスタンス生成 AlarmManager alarmManager = (AlarmManager)cnt.getSystemService(Context.ALARM_SERVICE); // 1回のアラームを現在の時間からperiod秒後に実行させる alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + period, pendingIntent); // アプリ終了 finish(); } //ボタンの生成 private Button makeButton(String text, String tag){ Button button = new Button(this); button.setText(text); button.setTag(tag); button.setOnClickListener(this); button.setLayoutParams(new LinearLayout.LayoutParams(WC, WC)); button.invalidate(); return button; } //イメージボタンの生成 private ImageButton makeButton(Bitmap bmp,String tag){ ImageButton button = new ImageButton(this); button.setTag(tag); button.setOnClickListener(this); button.setImageBitmap(bmp); button.setLayoutParams(new LinearLayout.LayoutParams(WC, WC)); button.invalidate(); return button; } //リソース→ビットマップ public Bitmap res2bmp(Context context, int resID){ return BitmapFactory.decodeResource(context.getResources(), resID); } //ボタン押下時に呼ばれる public void onClick(View view){ String tag = (String)view.getTag(); if(TAG_MESSAGE.equals(tag)){ MessageDialog.show(this, "メッセージダイアログ", "ボタンを押した"); }else if(TAG_YESNO.equals(tag)){ YesNoDialog.show(this, "Yes/Noダイアログ", "Yes/Noを選択"); }else if(TAG_TEXT.equals((tag))){ TextDialog.show(this, "テキスト入力ダイアログ", "テキストを入力"); }else if(TAG_IMAGE.equals(tag)){ if(imgOk){ imgOk = false; }else{ imgOk = true; } MessageDialog.show(this, "", "イメージボタンを押した"); //画像の再描画のやり方がわからないので、 // アプリごと再起動するための設定 context = getApplicationContext(); waitperiod = 1; //restart(context, waitperiod); } } //イメージダイアログの定義 public static class MessageDialog extends DialogFragment{ //ダイアログの表示 public static void show(Activity activity, String title, String text){ MessageDialog f = new MessageDialog(); Bundle args = new Bundle(); args.putString("title", title); args.putString("text", text); f.setArguments(args); f.show(activity.getFragmentManager(), "messageDialog"); } //ダイアログの生成 @Override public Dialog onCreateDialog(Bundle bundle){ AlertDialog.Builder ad = new AlertDialog.Builder(getActivity()); ad.setTitle(getArguments().getString("title")); ad.setMessage(getArguments().getString("text")); ad.setPositiveButton("OK", null); return ad.create(); } } //Yes/Noダイアログの定義 public static class YesNoDialog extends DialogFragment{ //ダイアログの表示 public static void show(Activity activity, String title, String text){ YesNoDialog f = new YesNoDialog(); Bundle args = new Bundle(); args.putString("title", title); args.putString("text", text); f.setArguments(args); f.show(activity.getFragmentManager(), "yesNoDialog"); } //Yes/Noダイアログの生成 @Override public Dialog onCreateDialog(Bundle bundle) { //リスナーの生成 DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { //ダイアログボタン押下時に呼ばれる public void onClick(DialogInterface dialog, int which) { if (which == DialogInterface.BUTTON_POSITIVE) { MessageDialog.show(getActivity(), "", "YES"); } else if (which == DialogInterface.BUTTON_NEGATIVE) { MessageDialog.show(getActivity(), "", "NO"); } } }; //Yes/Noダイアログの生成 AlertDialog.Builder ad = new AlertDialog.Builder(getActivity()); ad.setTitle(getArguments().getString("title")); ad.setMessage(getArguments().getString("text")); ad.setPositiveButton("Yes", listener); ad.setNegativeButton("No", listener); return ad.create(); } } //テキスト入力ダイアログの定義 public static class TextDialog extends DialogFragment{ private EditText editText; //ダイアログの表示 public static void show(Activity activity, String title, String text){ TextDialog f = new TextDialog(); Bundle args = new Bundle(); args.putString("title", title); args.putString("text", text); f.setArguments(args); f.show(activity.getFragmentManager(), "textDialog"); } //テキスト入力ダイアログの生成 @Override public Dialog onCreateDialog(Bundle bundle){ //リスナーの生成 DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { //ダイアログボタン押下時に呼ばれる @Override public void onClick(DialogInterface dialog, int which) { if(editText.getText().toString().equals("")){ MessageDialog.show(getActivity(), "", "何も入力されませんでした"); }else{ MessageDialog.show(getActivity(), "", editText.getText().toString()); } } }; //エディットテキストの生成 editText = new EditText(getActivity()); //テキスト入力ダイアログの生成 AlertDialog.Builder ad = new AlertDialog.Builder(getActivity()); ad.setTitle(getArguments().getString("title")); ad.setMessage(getArguments().getString("text")); ad.setView(editText); ad.setPositiveButton("OK", listener); //フラグメントの状態復帰 if(bundle != null) editText.setText(bundle.getString("editText", "")); return ad.create(); } //フラグメントの状態保存 @Override public void onSaveInstanceState(Bundle bundle){ super.onSaveInstanceState(bundle); bundle.putString("editText", editText.getText().toString()); } } }

###試したこと
ソースコードには画像以外の関係ない処理も入っています。

現在はどうしても画像の再描画のやり方がわからなく、
強制的にアプリの再起動を行うという荒業を使って
むりやりもう一度Activityを再起動させ、
onCreate()メソッドを呼び出し再描画を行う
という方法を採っています。
invalidate()メソッドによる再描画も試してみたのですが変わりませんでした・・・。

色々と調べていると根本的ななにかが足りないのではないかと感じています。
どうかご教示のほど宜しくお願い致します。

###補足情報(言語/FW/ツール等のバージョンなど)
言語:Java
FW:Android6.0環境
開発ツールver:AndroidStudio2.1

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

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

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

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

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

abs123

2016/08/23 06:50

出来なかった時のコードを貼ってください、無理やり解決したときのコードを貼られても困ります。
退会済みユーザー

退会済みユーザー

2016/08/23 06:56

ソースコードを読んでいただくとお分かりいただけますが、 無理やり解決したといってもrestartメソッドを作成しonClick()メソッド内で 画像がタップされた際にrestart()メソッドを呼び出すようにしているだけです。 その部分をコメントアウトしていますからこのコード自体が出来ないコードとなっております。 宜しくお願い致します。
abs123

2016/08/23 07:16

invalidate()メソッドによる再描画も試してみた、というのは、どの部分のとこでしょうか?
退会済みユーザー

退会済みユーザー

2016/08/23 07:47 編集

よろしければここではなく回答フォームの方で回答して頂けると嬉しいです。 語句検索(Ctrl+F)で探していただけるとわかると思いますが、makeButton()メソッド内で使用しています。
guest

回答3

0

Java

1public void onClick(View view){ 2 String tag = (String)view.getTag(); 3 4 if(TAG_IMAGE.equals(tag)){ 5 MessageDialog.show(this, "", "イメージボタンを押した"); 6 7 //TAG_IMAGEを持つViewはImageButtonであることが分かっているのでキャスト 8 ImageButton image = (ImageButton)view; 9 10 } 11}

こういった使い方は教本に出てきてないですかね?

投稿2016/08/23 07:58

編集2016/08/23 08:13
abs123

総合スコア1280

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

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

退会済みユーザー

退会済みユーザー

2016/08/23 08:29

丁寧に具体的なコードまで記述してくださりありがとうございます。 上記コードでString tag = (String)view.getTag();でタグ番号を持ってきて、 タップされた番号と等しいイベントを発生させるという処理は教本にも出てきていました。 ソースコードでも実際に使用しています。 ですがキャストをして入れる処理は載っていませんでしたね…。
guest

0

ベストアンサー

Java

1//ボタンとダイアログ 2public class ButtonEx extends Activity implements View.OnClickListener{ 3 private final static int WC = LinearLayout.LayoutParams.WRAP_CONTENT; 4 private final static String TAG_MESSAGE = "0"; 5 private final static String TAG_YESNO = "1"; 6 private final static String TAG_TEXT = "2"; 7 private final static String TAG_IMAGE = "3"; 8 private static boolean imgOk = true; 9 10 private Context context; 11 private int waitperiod = 1000; 12 13 LinearLayout layout; 14 15 //アクティビティ起動時に呼ばれる 16 @Override 17 public void onCreate(Bundle bundle){ 18 System.out.println("onCreate実行"); 19 super.onCreate(bundle); 20 requestWindowFeature(Window.FEATURE_NO_TITLE); 21 22 //変更部分(インスタンスをクラスフィールドへ) 23 //レイアウトの生成 24 layout = new LinearLayout(this); 25 layout.setBackgroundColor(Color.WHITE); 26 layout.setOrientation(LinearLayout.VERTICAL); 27 setContentView(layout); 28 29 //ボタンの生成 30 layout.addView(makeButton("メッセージダイアログの表示", TAG_MESSAGE)); 31 layout.addView(makeButton("Yes/Noダイアログの表示", TAG_YESNO)); 32 layout.addView(makeButton("テキスト入力ダイアログの表示", TAG_TEXT)); 33 layout.invalidate(); 34 if(imgOk == true){ 35 System.out.println("目をつぶる"); 36 layout.addView(makeButton(res2bmp(this, R.drawable.sample), TAG_IMAGE)); 37 }else{ 38 System.out.println("目をひらく"); 39 layout.addView(makeButton(res2bmp(this, R.drawable.sample2), TAG_IMAGE)); 40 } 41 } 42 43 //疑似再描画用メソッド 44 public void restart(Context cnt, int period){ 45 // intent 設定で自分自身のクラスを設定 46 Intent buttonEx = new Intent(cnt, ButtonEx.class); 47 // PendingIntent , ID=0 48 PendingIntent pendingIntent = PendingIntent.getActivity(cnt, 0, buttonEx, PendingIntent.FLAG_CANCEL_CURRENT); 49 // AlarmManager のインスタンス生成 50 AlarmManager alarmManager = (AlarmManager)cnt.getSystemService(Context.ALARM_SERVICE); 51 // 1回のアラームを現在の時間からperiod秒後に実行させる 52 alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + period, pendingIntent); 53 // アプリ終了 54 finish(); 55 } 56 57 @Override 58 protected void onResume(){ 59 System.out.println("onResume実行"); 60 super.onResume(); 61 } 62 63 //ボタンの生成 64 private Button makeButton(String text, String tag){ 65 Button button = new Button(this); 66 button.setText(text); 67 button.setTag(tag); 68 button.setOnClickListener(this); 69 button.setLayoutParams(new LinearLayout.LayoutParams(WC, WC)); 70 button.invalidate(); 71 return button; 72 } 73 74 //イメージボタンの生成 75 private ImageButton makeButton(Bitmap bmp,String tag){ 76 ImageButton button = new ImageButton(this); 77 button.setTag(tag); 78 button.setOnClickListener(this); 79 button.setImageBitmap(bmp); 80 button.setLayoutParams(new LinearLayout.LayoutParams(WC, WC)); 81 button.invalidate(); 82 return button; 83 } 84 85 //リソース→ビットマップ 86 public Bitmap res2bmp(Context context, int resID){ 87 return BitmapFactory.decodeResource(context.getResources(), resID); 88 } 89 90 //ボタン押下時に呼ばれる 91 public void onClick(View view){ 92 String tag = (String)view.getTag(); 93 94 if(TAG_MESSAGE.equals(tag)){ 95 MessageDialog.show(this, "メッセージダイアログ", "ボタンを押した"); 96 }else if(TAG_YESNO.equals(tag)){ 97 YesNoDialog.show(this, "Yes/Noダイアログ", "Yes/Noを選択"); 98 }else if(TAG_TEXT.equals((tag))){ 99 TextDialog.show(this, "テキスト入力ダイアログ", "テキストを入力"); 100 }else if(TAG_IMAGE.equals(tag)){ 101 if(imgOk){ 102 imgOk = false; 103 }else{ 104 imgOk = true; 105 } 106 MessageDialog.show(this, "", "イメージボタンを押した"); 107 108 //変更部分(外に出したインスタンスに対してadd) 109 if(imgOk == true){ 110 System.out.println("目をつぶる"); 111 layout.addView(makeButton(res2bmp(this, R.drawable.sample), TAG_IMAGE)); 112 }else{ 113 System.out.println("目をひらく"); 114 layout.addView(makeButton(res2bmp(this, R.drawable.sample2), TAG_IMAGE)); 115 } 116 } 117 } 118 119 //イメージダイアログの定義 120 public static class MessageDialog extends DialogFragment{ 121 //ダイアログの表示 122 public static void show(Activity activity, String title, String text){ 123 MessageDialog f = new MessageDialog(); 124 Bundle args = new Bundle(); 125 args.putString("title", title); 126 args.putString("text", text); 127 f.setArguments(args); 128 f.show(activity.getFragmentManager(), "messageDialog"); 129 } 130 131 //ダイアログの生成 132 @Override 133 public Dialog onCreateDialog(Bundle bundle){ 134 AlertDialog.Builder ad = new AlertDialog.Builder(getActivity()); 135 ad.setTitle(getArguments().getString("title")); 136 ad.setMessage(getArguments().getString("text")); 137 ad.setPositiveButton("OK", null); 138 return ad.create(); 139 } 140 } 141 142 //Yes/Noダイアログの定義 143 public static class YesNoDialog extends DialogFragment{ 144 //ダイアログの表示 145 public static void show(Activity activity, String title, String text){ 146 YesNoDialog f = new YesNoDialog(); 147 Bundle args = new Bundle(); 148 args.putString("title", title); 149 args.putString("text", text); 150 f.setArguments(args); 151 f.show(activity.getFragmentManager(), "yesNoDialog"); 152 } 153 154 //Yes/Noダイアログの生成 155 @Override 156 public Dialog onCreateDialog(Bundle bundle) { 157 //リスナーの生成 158 DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { 159 //ダイアログボタン押下時に呼ばれる 160 public void onClick(DialogInterface dialog, int which) { 161 if (which == DialogInterface.BUTTON_POSITIVE) { 162 MessageDialog.show(getActivity(), "", "YES"); 163 } else if (which == DialogInterface.BUTTON_NEGATIVE) { 164 MessageDialog.show(getActivity(), "", "NO"); 165 } 166 } 167 }; 168 //Yes/Noダイアログの生成 169 AlertDialog.Builder ad = new AlertDialog.Builder(getActivity()); 170 ad.setTitle(getArguments().getString("title")); 171 ad.setMessage(getArguments().getString("text")); 172 ad.setPositiveButton("Yes", listener); 173 ad.setNegativeButton("No", listener); 174 return ad.create(); 175 } 176 } 177 178 //テキスト入力ダイアログの定義 179 public static class TextDialog extends DialogFragment{ 180 private EditText editText; 181 182 //ダイアログの表示 183 public static void show(Activity activity, String title, String text){ 184 TextDialog f = new TextDialog(); 185 Bundle args = new Bundle(); 186 args.putString("title", title); 187 args.putString("text", text); 188 f.setArguments(args); 189 f.show(activity.getFragmentManager(), "textDialog"); 190 } 191 192 //テキスト入力ダイアログの生成 193 @Override 194 public Dialog onCreateDialog(Bundle bundle){ 195 //リスナーの生成 196 DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { 197 //ダイアログボタン押下時に呼ばれる 198 @Override 199 public void onClick(DialogInterface dialog, int which) { 200 if(editText.getText().toString().equals("")){ 201 MessageDialog.show(getActivity(), "", "何も入力されませんでした"); 202 }else{ 203 MessageDialog.show(getActivity(), "", editText.getText().toString()); 204 } 205 } 206 }; 207 208 //エディットテキストの生成 209 editText = new EditText(getActivity()); 210 211 //テキスト入力ダイアログの生成 212 AlertDialog.Builder ad = new AlertDialog.Builder(getActivity()); 213 ad.setTitle(getArguments().getString("title")); 214 ad.setMessage(getArguments().getString("text")); 215 ad.setView(editText); 216 ad.setPositiveButton("OK", listener); 217 218 //フラグメントの状態復帰 219 if(bundle != null) editText.setText(bundle.getString("editText", "")); 220 return ad.create(); 221 } 222 223 //フラグメントの状態保存 224 @Override 225 public void onSaveInstanceState(Bundle bundle){ 226 super.onSaveInstanceState(bundle); 227 bundle.putString("editText", editText.getText().toString()); 228 } 229 } 230}

上記コードに追記・変更することで画像を押した際の
イベント処理が実装できました。
このままだと画像が増えていきますので差し替え処理をこの後実装します。

質問に答えてくださった方々、ありがとうございました。

投稿2016/08/23 08:45

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

abs123

2016/08/23 09:02

まぁ、最初の内は動けばいいんですよ(暴論) 気が向いたら、画像を連打してみてください。
退会済みユーザー

退会済みユーザー

2016/08/23 09:10

私の場合、動けばいいの精神でコードを書き始めることが多いので yonaさんからもおっしゃられた通り怒られることが多いのですけどもね(苦笑) また質問することがあるかもしれませんが、 見かけたらこんなやつですがヒントでも与えてやってください。ありがとうございました。
yona

2016/08/23 09:14

これは自己解決じゃないでしょ
退会済みユーザー

退会済みユーザー

2016/08/23 09:46 編集

私の2016/08/23 16:49の投降後、 自分で理解しているonCreate()の仕様通りなら差し替え処理は毎回呼び出されるonClick()に書くべきなのでは?と思い実践したところ動きました。 具体的な解決案を思いつき実践して動いたのは自己解決のうちに入らないのでしょうか。
guest

0

やりたいことはImageButton#setImageResourceを使って画像を差し替えるだけじゃないですか?

投稿2016/08/23 06:25

yona

総合スコア18155

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

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

退会済みユーザー

退会済みユーザー

2016/08/23 06:48

回答ありがとうございます。 ImageButtonクラスに用意されているそのメソッドの存在がわからなかったので 調べてみたところ、私のコード中にあるsetImageBitmap()と同じ役割を持つ、 という感じであっていますでしょうか。 また、画像を差し替えるとして、その差し替えるための処理をonCreate()メソッド内には書くべきではないですか? 知識不足で申し訳ありません。
yona

2016/08/23 07:09

クラスを使うときはまず、リファレンスをみましょう。リファレンスにメソッドの用途や引数などが載っています。 また、onCreateに書くべきと思った理由はなんですか?書くかどうかは場合に寄ります。
退会済みユーザー

退会済みユーザー

2016/08/23 07:49 編集

クラスリファレンスを見て確認を行ってきます。 いえ、書くべきでは”ない”のか?という意味で書き込みました。 onCreate()メソッドは実行中画面の回転か、または私の試したアプリの再起動という手順でも踏まない限り一度しか呼び出されないという認識でいるからです。 リアルタイム更新するとなると1度しか呼ばれない個所に変更処理を書いても二度と通ることはないわけですから意味がないですよね。 現状書いてしまっている状態ですのでその認識があっているとするとやりたいことを実現するためにはそこに書かない方がよいのかどうかと思い、お聞きした次第です。
yona

2016/08/23 08:04

メソッドの存在に気付いていないのならリファレンスを読んでないも同然です。 今回のやりたいことからすると初期表示の設定を書く必要はありますが、更新処理は書く必要はありません。 更新処理はonClickメソッドに書きましょう。
退会済みユーザー

退会済みユーザー

2016/08/23 08:19

えっと、ですから読んでいなかったと言っているのですが・・・。 相談しているうちに構造が理解できてきたので、 onCreate()には初期画面表示設定、 onClickには画像の差し替え処理、 をそれぞれ記述してみたところ近い処理が出来ました。 まだ思うような動作は出来ていませんが質問に回答してくださりありがとうございました。
yona

2016/08/23 08:21

リファレンスは読み方が重要なんですけどね。理解してもらえなくて残念です。
退会済みユーザー

退会済みユーザー

2016/08/23 08:34

余計な一言を言う理由はなんなのでしょうか…そこは理解出来ません。 クラスを使う際にはリファレンスを読み込んでから使うべきという お言葉。こちらは理解しましたしありがたく教訓として感謝します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問