前提・実現したいこと
Java初心者です。
Android Studio で継承関係にない別アクティビティのメソッドを呼び出したいです。
また、戻り値としてArrayList<String>を受け取りたいと考えています。
具体的には、メインアクティビティにある、CSVを読み込みArrayListにするメソッドを
マップを表示するアクティビティから呼び出し、
CSVに記載してある緯度経度の数値をマップ上にマーカーとして追加しようとしています。
発生している問題・エラーメッセージ
Compilation failed;
該当のソースコード
MainActivity.java
Java
1public class MainActivity extends AppCompatActivity { 2 @Override 3 protected void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 setContentView(R.layout.activity_main); 6 } 7 8 public ArrayList csvRead(int filename) { 9 ArrayList<ArrayList<String>> arrays = new ArrayList<>(); 10 InputStream is = getResources().openRawResource(filename); 11 BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 12 String line; 13 try { 14 while ((line = reader.readLine()) != null) { 15 //カンマ区切りで1つづつ配列に入れる 16 ArrayList<String> array = new ArrayList<>(); 17 String[] RowData = line.split(","); 18 for (int j = 0; j < RowData.length; j++) { 19 array.add(RowData[j]); 20 } 21 arrays.add(array); 22 //Log.d("array1",""+array+""); 23 } 24 //Log.d("array2",""+arrays+""); 25 reader.close(); 26 } catch (IOException e) { 27 e.printStackTrace(); 28 } 29 return arrays; 30 } 31}
SubActivity.java
Java
1 2public class SubActivity extends FragmentActivity implements OnMapReadyCallback { 3 4 private GoogleMap mMap; 5 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_all_evac_maps); 10 Log.d("debug", "onCreate()"); 11 // Obtain the SupportMapFragment and get notified when the map is ready to be used. 12 SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 13 .findFragmentById(R.id.map); 14 mapFragment.getMapAsync(this); 15 } 16 17 @Override 18 public void onMapReady(GoogleMap googleMap) { 19 Log.d("debug", "onMapReady()"); 20 mMap = googleMap; 21 22 23//問題の部分。メソッドを呼び出せない 24 Intent intent = new Intent(this, MainActivity.class); 25 intent.getStringArrayListExtra(MainActivity.csvRead(R.raw."ファイル名")); 26//コンパイルエラー 27 28 29//for文でaddMarkerをする予定 30 for (int i=0; i<arrayList.length; i++){ 31 //色々; 32 } 33 } 34} 35
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/12 06:29
2019/11/12 06:31
2019/11/12 06:38
2019/11/12 06:40
2019/11/12 07:47
2019/11/12 08:50
2019/11/12 08:55
2019/11/12 09:01