2017-04-26 2 views
0

このプロジェクトでは、Androidスタジオを使用しています。 私はたくさんのことを試みました。クラスからオブジェクトを作成します。オブジェクトを保存します。第3クラスのオブジェクトを呼び出す

ゴール: 私は、ユーザーにデータを入力するよう求めるアプリケーションを作成したいと考えています。データを保存し、後でユーザーが見ることができるログ履歴として別の画面で呼び出す必要があります。私がやった何

: 私は三つのクラスがあります:「InputScreen」「ログ」「LogHistoryScreen」

私のような完全に正常に動作InputScreenのログオブジェクトを作成しようとしました:ログLOG1 =新しいをログ();しかし、私はどのようにLogHistoryScreenからInputScreenで作られたオブジェクトlog1を呼び出すか分かりません。提案がある人は誰ですか?

ありがとうございます。

+0

これらのログをメモリに保存する場合は、データベースの保存という概念を使用できます。 –

答えて

2

はInputScreenクラスでログのリストを作成します。

List<Log> logs = new ArrayList(); 
logs.add(log1); 
// same for next logs. 

その後、ログのリストを返しますInputScreenでメソッドを作成します。このような何か:

public List<Log> getAllLogs() { 
    return logs; 
} 

コールのようなLogHistoryScreenからこの方法:

InputScreen inputScreen = new InputScreen(); 
List<Log> logs = inputScreen.getAllLogs(); 
+0

私を助けてくれてありがとう。 logs.add(log1)でエラーが発生しました。それには赤い下線があり、 "In Listを適用できません"と表示されます。 これはクラスInputScreenのメソッドです。 public void buttonPressed(){ ログlog1 =新しいログ(150); リスト logs = new ArrayList(); logs.add(log1); } –

+0

Logsタイプオブジェクトのリストを具体的に作成してください。 –

+0

ああ今は大丈夫です。どうもありがとうございます! –

0

はあなたがここで使用できるさまざまなオプションがあります。私はここでいくつか言及するでしょう。

1)インテントを通します。

入力スクリーンからLogHistoryScreenを開いているときに、オブジェクトとしてパラメータを渡します。

以下のコードに従ってください。

Intent intent = new Intent(this, LogHistoryScreen.class); 
intent.putExtra("Key", yourObject); 
startActivity(intent); 

は(のonCreateでオブジェクトを受信)LogHistoryScreen活動の

Log log = (Log)getIntent().getSerializableExtra("Key"); 

Log.classはSerializableを実装する必要があります。

public class Log implements Serializable 
{ 
} 

2)データベースにオブジェクトを格納し、他の活動からそれを取り出します。これは、アプリケーションセッション間でデータを保持する必要がある場合に特に役立ちます。

私は最初のオプションがあなたにもっと役立つと思います。

関連する問題