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

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

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

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

Q&A

解決済

1回答

1306閲覧

Android Studio

boc20

総合スコア26

Android Studio

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

0グッド

0クリップ

投稿2017/02/09 07:32

###前提・実現したいこと
アプリに追加したい機能を制作したのですがその機能を一つのプロジェクトに合わせるとエラーで実行できません
①のコードに②のコードを追加して一つにしたいのですが☆で囲んだ部分がエラーになります。
合わせたい機能は下記の2つです。
・画像選択
・ActiveAndroidデータ保存

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

コンパイルできない状態です

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

Java

1------------------------------------------------------------ 2public class MainActivity extends AppCompatActivity { 3 4 private EditText editText1, editText2; 5 private Button buttonSave, buttonRead, buttonClear; 6 private TextView textView; 7 8 @Override 9 protected void onCreate(Bundle savedInstanceState) { 10 super.onCreate(savedInstanceState); 11 setContentView(R.layout.activity_main); 12 13 editText1 = (EditText) findViewById(R.id.edit_text1); 14 editText2 = (EditText) findViewById(R.id.edit_text2); 15 16 buttonSave = (Button) findViewById(R.id.save_button); 17 buttonSave.setOnClickListener(new View.OnClickListener() { 18 @Override 19 public void onClick(View v) { 20 String text1 = editText1.getText().toString(); 21 String text2 = editText2.getText().toString(); 22 23 if (text1 != null && text2 != null) { 24 saveData(text1, text2); 25 // 次の入力のため空白とする 26 editText1.setText(""); 27 editText2.setText(""); 28 29 // ボタンがタップでkeyboard を閉じる 30 InputMethodManager inputMethodManager = 31 (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 32 inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(), 0); 33 } 34 } 35 }); 36 37 textView = (TextView) findViewById(R.id.text_view); 38 39 buttonRead = (Button) findViewById(R.id.read_button); 40 buttonRead.setOnClickListener(new View.OnClickListener() { 41 @Override 42 public void onClick(View v) { 43 readData(); 44 } 45 }); 46 47 48 buttonClear = (Button) findViewById(R.id.clear_button); 49 buttonClear.setOnClickListener(new View.OnClickListener() { 50 @Override 51 public void onClick(View v) { 52 clearData(); 53 54 55 } 56 }); 57 58 } 59 60 61 62 63 private void saveData(String text1, String text2) { 64 // 登録 65 Item item = new Item(); 66 item.keyData = text1; 67 item.valueData = text2; 68 item.save(); 69 70 // 読出し 71 readData(); 72 } 73 74 75 private void readData() { 76 String resText = ""; 77 78 // 全て取リだし 79 List<Item> list = new Select().from(Item.class).execute(); 80 for (Item i : list) { 81 resText += String.valueOf(i) + ": " + i.keyData + ", " + i.valueData + "\n"; 82 } 83 84 textView.setText(resText); 85 } 86 87 private void clearData() { 88 List<String> tables = new ArrayList<>(); 89 90 SQLiteDatabase database = ActiveAndroid.getDatabase(); 91 Cursor cursor = database.rawQuery("SELECT * FROM sqlite_master WHERE type='table';", null); 92 cursor.moveToFirst(); 93 94 while (!cursor.isAfterLast()) { 95 String tableName = cursor.getString(1); 96 if (!tableName.equals("android_metadata") && 97 !tableName.equals("sqlite_sequence")) { 98 tables.add(tableName); 99 } 100 cursor.moveToNext(); 101 } 102 cursor.close(); 103 for (String tableName : tables) { 104 database.execSQL("DELETE FROM " + tableName); 105 } 106 107 } 108} 109 110------------------------------------------------------------ 111public class MainActivity1 extends AppCompatActivity{ 112 113 114 private Bitmap bitmap; 115 private ImageView imageView; 116 private Canvas canvas; 117 private int viewWidth, viewHeight; 118 119☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 120 @Override 121 protected void onCreate(Bundle savedInstanceState) { 122 super.onCreate(savedInstanceState); 123 setContentView(R.layout.activity_main1); 124 125 // ウィンドウマネージャのインスタンス取得 126 WindowManager manager = (WindowManager) getSystemService(WINDOW_SERVICE); 127 // ディスプレイのインスタンスを生成 128 Display display = manager.getDefaultDisplay(); 129 Point point = new Point(); 130 // 画像サイズの取得 131 display.getSize(point); 132 viewWidth = point.x; 133 viewHeight = point.y; 134 135 imageView = (ImageView)findViewById(R.id.imagView); 136 137 138 Button button = (Button) findViewById(R.id.gazoo); 139 button.setOnClickListener(new OnClickListener() { 140 @Override 141 public void onClick(View v) { 142 // 画像が保存されてるフォルダにアクセス 143 Intent intent = new Intent(); 144 intent.setType("image/*"); 145 intent.setAction(Intent.ACTION_PICK); 146 // 起動先アクティビティからデータを返してもらいたい場合 147 startActivityForResult(intent, 0); 148 } 149 }); 150 } 151☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 152 153 154 // 起動先アクティビティからデータを返してもらう 155 @Override 156 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 157 super.onActivityResult(requestCode, resultCode, data); 158 // 画像を選択した時のみ実行 159 if (data != null) { 160 Uri uri = data.getData(); 161 try { 162 bitmap = loadImage(uri, viewWidth, viewHeight); 163 } catch (Exception e) { 164 e.printStackTrace(); 165 } 166 canvas = new Canvas(bitmap); 167 imageView.setImageBitmap(bitmap); 168 } 169 } 170 171 // 取得したURIを用いて画像を読み込む 172 private Bitmap loadImage(Uri uri, int viewWidth, int viewHeight) { 173 // Uriから画像を読み込みBitmapを作成 174 Bitmap originalBitmap = null; 175 try { 176 originalBitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri); 177 } catch (FileNotFoundException e) { 178 e.printStackTrace(); 179 } catch (IOException e) { 180 e.printStackTrace(); 181 } 182 183 // MediaStoreから回転情報を取得 184 final int orientation; 185 Cursor cursor = MediaStore.Images.Media.query(getContentResolver(), uri, new String[]{ 186 MediaStore.Images.ImageColumns.ORIENTATION 187 }); 188 if (cursor != null) { 189 cursor.moveToFirst(); 190 orientation = cursor.getInt(0); 191 } else { 192 orientation = 0; 193 } 194 195 int originalWidth = originalBitmap.getWidth(); 196 int originalHeight = originalBitmap.getHeight(); 197 198 // 縮小割合を計算 199 final float scale; 200 if (orientation == 90 || orientation == 270) { 201 // 縦向きの画像は半分のサイズに変更 202 scale = Math.min(((float) viewWidth / originalHeight) / 2, ((float) viewHeight / originalWidth) / 2); 203 } else { 204 // 横向きの画像 205 scale = Math.min((float) viewWidth / originalWidth, (float) viewHeight / originalHeight); 206 } 207 208 // 変換行列の作成 209 final Matrix matrix = new Matrix(); 210 if (orientation != 0) { 211 //画像を回転させる 212 matrix.postRotate(orientation); 213 } 214 if (scale < 1.0f) { 215 // Bitmapを拡大縮小する 216 matrix.postScale(scale, scale); 217 } 218 219 // 行列によって変換されたBitmapを返す 220 return Bitmap.createBitmap(originalBitmap, 0, 0, originalWidth, originalHeight, matrix, 221 true); 222 } 223 224} 225

###補足情報(言語/FW/ツール等のバージョンなど)
開発OS Windows10
AndroidStudio2.2.3
Android API 19
使用端末 XperiaZ1F(SO-02F)

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

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

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

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

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

guest

回答1

0

ベストアンサー

同じメソッドを複数回オーバーライドは書けないですよ。
中の処理をどちらかのメソッドに移してください。

また、エラーメッセージも質問に載せてください。

投稿2017/02/09 07:46

yona

総合スコア18155

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

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

boc20

2017/02/10 00:28

返信が遅くなってしまい申し訳ないです。 教えていただいた通り同じメソッド内のオーバーライドを一つにしたら上手くいきました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問