LocationActivityで、値を代入したusernmaeをfavoriteクラスの中ので使いたいです。
//コードの変更
//コードの変更後のfavoriteクラス
java
1package com.example.android.sample.new3; 2 3import android.app.Application; 4import android.database.Cursor; 5import android.database.sqlite.SQLiteDatabase; 6import android.util.Log; 7 8/** 9 * Created by endoutaichi on 2017/05/26. 10 */ 11 12public class favorite extends Application { 13 14 15 /**LocationActivity locationActivity = new LocationActivity(); 16 17 18 String username= locationActivity.username; 19 20 String spinnerItems[]= locationActivity.spinnerItems; 21 **/ 22 23 24 25 favorite fa = LocationActivity.getApplication(); 26 27 28 String username= fa.username; 29 30 // Bitmap bmp_sub = fa.getObj(); 31 32 33 String spinnerItems[]= fa.spinnerItems; 34 35 36 //--------------------------------------------------------favorite---------------------------------------------------------------------// 37 //これをログインした時に usernameを使って、と、newPlaceをinsertしたあとに呼び出す、 38 public void favorite(SQLiteDatabase db) { 39 40 41 if (username != null) { 42 String sql = "select placename from favorite where username = '" + username + "';"; 43 Log.v("placename select:", sql); 44 45 //usernameがまだない場合は、とりあえず 46 47 //MyOpenHelper helper = new MyOpenHelper(getfavorite()); 48 // SQLiteDatabase db = helper.getWritableDatabase(); 49 Cursor c =db.rawQuery(sql, null); 50 //これで、4つは設定できる 51 int count = c.getCount(); 52 53 //-----新しいの作るのはいいけど、前のは消さなくていい?-----// 54 spinnerItems = new String[count + 2]; 55 spinnerItems[0] = "GPSの現在地"; 56 spinnerItems[1] = "googlemapで登録"; 57 58 boolean mov = c.moveToFirst(); 59 int mam = 0; 60 while (mov) { 61 62 String in = c.getString(0); 63 fa.spinnerItems[mam + 2] = in; 64 System.out.println("mam+2" + mam + 2); 65 System.out.println("\"" + in + "\""); 66 mov = c.moveToNext(); 67 mam = mam + 1; 68 System.out.println("mam" + mam); 69 } 70 71 fa.onStart(); 72 c.close(); 73 db.close(); 74 } else if (username == null) { 75 76 spinnerItems = new String[2]; 77 spinnerItems[0] = "GPSの現在地"; 78 spinnerItems[1] = "googlemapで登録"; 79 80 locationActivity.onStart(); 81 82 } 83 } 84 85 86}
//コードの変更前のfavoriteクラス
java
1public class favorite { 2 3//この下がエラーの出ているfavoriteの14行目です 4 LocationActivity locationActivity = new LocationActivity(); 5 6String username= locationActivity.username; 7 8} 9
//コードの変更前のfavoriteクラスとLocatiionActivity
違うクラスの変数を使うために、このように、
favoriteをnewして、favorite()を呼び出し、
LocationActivityをnewして、String usernameに代入しているのですが、
一番下に記載したようなエラーがでます。
どうすればいいのでしょうか?
java
1public class favorite { 2 3//この下がエラーの出ているfavoriteの14行目です 4 LocationActivity locationActivity = new LocationActivity(); 5 6String username= locationActivity.username; 7 8} 9
java
1 2public class LocationActivity extends AppCompatActivity implements 3 GoogleApiClient.ConnectionCallbacks, 4 GoogleApiClient.OnConnectionFailedListener, 5 LocationListener,OnMapReadyCallback,GoogleMap.OnMapLongClickListener, 6 ListView.OnItemClickListener,ListView.OnItemLongClickListener { 7 8favorite favorite = new favorite(); 9 10 @Override 11 protected void onCreate(Bundle savedInstanceState) { 12 super.onCreate(savedInstanceState); 13 14 15MyOpenHelper helper = new MyOpenHelper(LocationActivity.this); 16 SQLiteDatabase db = helper.getWritableDatabase(); 17//この下がエラーの出ているLocationAcitivityの133行目です 18 favorite.favorite(db); 19 } 20 21}
このようなエラーが出ます。
java
1 at com.example.android.sample.new3.LocationActivity.<init>(LocationActivity.java:133) 2 at com.example.android.sample.new3.favorite.<init>(favorite.java:14) 3 at com.example.android.sample.new3.LocationActivity.<init>(LocationActivity.java:133) 4 at com.example.android.sample.new3.favorite.<init>(favorite.java:14) 5 at com.example.android.sample.new3.LocationActivity.<init>(LocationActivity.java:133) 6 at com.example.android.sample.new3.favorite.<init>(favorite.java:14) 7 at com.example.android.sample.new3.LocationActivity.<init>(LocationActivity.java:133) 8 at com.example.android.sample.new3.favorite.<init>(favorite.java:14) 9 at com.example.android.sample.new3.LocationActivity.<init>(LocationActivity.java:133) 10 at com.example.android.sample.new3.favorite.<init>(favorite.java:14) 11 at com.example.android.sample.new3.LocationActivity.<init>(LocationActivity.java:133) 12 at com.example.android.sample.new3.favorite.<init>(favorite.java:14) 13 at com.example.android.sample.new3.LocationActivity.<init>(LocationActivity.java:133) 14 at com.example.android.sample.new3.favorite.<init>(favorite.java:14) 15 at com.example.android.sample.new3.LocationActivity.<init>(LocationActivity.java:133) 1605-26 15:15:11.390 10062-10062/com.example.android.sample.new3 E/AndroidRuntime: at com.example.android.sample.new3.favorite.<init>(favorite.java:14) 17 at com.example.android.sample.new3.LocationActivity.<init>(LocationActivity.java:133) 18at com.example.android.sample.new3.LocationActivity.<init>(LocationActivity.java:133) 19 at java.lang.Class.newInstance(Native Method) 20 at android.app.Instrumentation.newActivity(Instrumentation.java:1078) 21 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2557) 22 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 23 at android.app.ActivityThread.-wrap12(ActivityThread.java) 24 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 25 at android.os.Handler.dispatchMessage(Handler.java:102) 26 at android.os.Looper.loop(Looper.java:154) 27 at android.app.ActivityThread.main(ActivityThread.java:6119) 28 at java.lang.reflect.Method.invoke(Native Method) 29 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 30 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 31 32 33
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/26 09:40 編集
2017/05/26 09:35 編集
2017/05/26 13:25 編集
2017/05/26 10:14
2017/05/26 13:27
2017/05/26 13:28