###前提・実現したいこと
アプリに追加したい機能を制作したのですがその機能を一つのプロジェクトに合わせるとエラーで実行できません
①のコードに②のコードを追加して一つにしたいのですが☆で囲んだ部分がエラーになります。
合わせたい機能は下記の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)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/10 00:28