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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

Q&A

解決済

2回答

1311閲覧

ArrayListをどのactivityからでも参照できるようにしたい。

teityann1225

総合スコア158

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

0グッド

0クリップ

投稿2018/04/07 16:06

#やりたいこと
このArrayListをどのactivityからでも参照できるようにする、。

#エラーコード

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference at com.teityan.wolf.werewolf.PositionActivity.onCreate(PositionActivity.java:29

#コード

Java

1class Pdata { 2 ArrayList<Pdata> list; 3 4 int id; 5 String Name; 6 int position ; 7 boolean Living; 8 int Vote; 9 10 public Pdata(){ 11 if (list==null){ 12 list = new ArrayList<Pdata>(); 13 14 } 15 16 } 17 public void addData(int id ,String Name, int position ,boolean Living,int vote){ 18 Pdata data =new Pdata(id,Name,position,Living,vote); 19 list.add(data); 20 } 21 public void setData(int id ,String Name, int position ,boolean Living,int vote){ 22 Pdata data =new Pdata(id,Name,position,Living,vote); 23 list.set(id,data); 24 25 } 26 27 public ArrayList<Pdata> getsdata(){ 28 ArrayList<Pdata> lists= list; 29 return lists; 30 } 31 public void deletedata(int name){ 32 list.remove(name); 33 } 34 35 36 Pdata( int id ,String Name, int position ,boolean Living,int vote) { 37 this.id = id; 38 this.Name = Name; 39 this.position = position; 40 this.Living = Living; 41 this.Vote = Vote; 42 } 43 44 45}

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

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

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

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

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

keicha_hrs

2018/04/07 16:18 編集

本質的には前の質問と同じなのですか?
Zuishin

2018/04/07 22:44

前の質問の回答にあるシングルトンでできます。同じ質問を何度もすると回答者が減りますし親切でなくなりますよ。シングルトンがよくわからないなら前の質問のベストアンサーを決めてこの質問を書き直し、どのように実装したけどどううまくいかないのかを書いてください。
退会済みユーザー

退会済みユーザー

2018/04/11 14:43

ローカルのSQLite3 じゃいけない理由がわからないな
guest

回答2

0

ベストアンサー

Singletonにする対象が誤っているようです。Listではなく、PDataをSingletonにすれば解決します。

Android

1 2public class Pdata { 3 4 private static Pdata instance; 5 6 List<Pdata> list; 7 8 int id; 9 String Name; 10 int position; 11 boolean Living; 12 int Vote; 13 14 public static Pdata getInstance() { 15 if (instance == null) { 16 instance = new Pdata(); 17 } 18 return instance; 19 } 20 21 private Pdata() { 22 list = new ArrayList<>(); 23 } 24 25 public void addData(int id, String Name, int position, boolean Living, int vote) { 26 Pdata data = new Pdata(id, Name, position, Living, vote); 27 list.add(data); 28 } 29 30 public void setData(int id, String Name, int position, boolean Living, int vote) { 31 Pdata data = new Pdata(id, Name, position, Living, vote); 32 list.set(id, data); 33 34 } 35 36 public List<Pdata> getsdata() { 37 List<Pdata> lists = list; 38 return lists; 39 } 40 41 public void deletedata(int name) { 42 list.remove(name); 43 } 44 45 46 Pdata(int id, String Name, int position, boolean Living, int vote) { 47 this.id = id; 48 this.Name = Name; 49 this.position = position; 50 this.Living = Living; 51 this.Vote = Vote; 52 } 53 54 55}

投稿2018/04/11 13:22

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

そのArrayListを返すメソッドをpublic で定義すれば。

java

1 2 public ArrayList<Pdata> GetList(){ return list;} 3

# getsdataってなにしている?


追記
ああ、質問の意図がやっとわかった

java

1 public ArrayList<Pdata> getsdata(){ 2 ArrayList<Pdata> lists= list; 3 return lists; 4 }

いったんAUTO変数(関数内で定義した変数)に代入してしまってるからコケます
AUTO変数はその関数が終わると存在しません

なので、直接listを返す必要があります

投稿2018/04/08 07:08

編集2018/04/08 07:17
y_waiwai

総合スコア87719

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

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

umyu

2018/04/08 07:45

低評価に1票投下しておきます。 理由:Java言語はGC(ガベージコレクション)があるので、GCルートからの参照が到達する限り勝手に開放されません。
y_waiwai

2018/04/08 07:51

経緯見てるとそもそもそんな話じゃなかったみたいね
y_waiwai

2018/04/09 06:14

しかし、こんだけマイナスついても他に回答がつかない不思議。 なんだかなあ。
mingos

2018/04/09 12:44

同じ質問を繰り返すし、前回の質問でもらった回答を試してもいないという印象なので、回答するのが馬鹿らしいなと思いました。 ちなみに私はマイナス評価つけていません。 この回答は的を外していると思いますが、マイナス評価つけるのはおかしいですね。
y_waiwai

2018/04/09 12:53

いやまあ、マイナス自体はいいんですよ。それはどーでもいいんですが、 このスレッドが上がり続けるのに、回答がこれだけってのは気にならないのかなあ、と思いますがw
退会済みユーザー

退会済みユーザー

2018/04/11 14:31

やりたいこと エラーコード(やりたいことと関係ない) ソースコード(やりたいことと関係ある) だから何もやってないととらえられてる可能性
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問