私は3つのアクティビティ - ログインアクティビティ、メインページアクティビティ、プロフィールアクティビティを持っています。ログインアクティビティはメインページアクティビティを呼び出し、メインページアクティビティはプロファイルアクティビティを呼び出します。ログインアクティビティからプロファイルアクティビティにデータを渡すにはどうすればよいですか?ログインアクティビティからメインページアクティビティにデータを渡してから、メインページアクティビティからプロファイルアクティビティに渡す必要がありますか?あるいは、データを渡す他の方法はありますか?ありがとう!Androidスタジオのアクティビティデータを渡す
答えて
これを行うことができます。または、データを永続ストレージに保存し、必要なときにいつでも読み戻すことができます。
についてSharedPreferences
ここに学ぶ - Saving Key-Value Sets | SharedPreferences
保存データは次のようになります。
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.saved_high_score), newHighScore); editor.commit();
の取得データは次のようになります。
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int defaultValue = getResources().getInteger(R.string.saved_high_score_default); long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
についてSQLite Database
ここに学ぶ - Saving Data in SQL Databases | SQLite Database
保存データは次のようになります。
// Gets the data repository in write mode SQLiteDatabase db = mDbHelper.getWritableDatabase(); // Create a new map of values, where column names are the keys ContentValues values = new ContentValues(); values.put(FeedEntry.COLUMN_NAME_TITLE, title); values.put(FeedEntry.COLUMN_NAME_SUBTITLE, subtitle); // Insert the new row, returning the primary key value of the new row long newRowId = db.insert(FeedEntry.TABLE_NAME, null, values);
の取得データは次のようになります。
SQLiteDatabase db = mDbHelper.getReadableDatabase(); // Filter results WHERE "title" = 'My Title' String selection = FeedEntry.COLUMN_NAME_TITLE + " = ?"; String[] selectionArgs = { "My Title" }; // How you want the results sorted in the resulting Cursor String sortOrder = FeedEntry.COLUMN_NAME_SUBTITLE + " DESC"; Cursor cursor = db.query( FeedEntry.TABLE_NAME, // The table to query projection, // The columns to return selection, // The columns for the WHERE clause selectionArgs, // The values for the WHERE clause null, // don't group the rows null, // don't filter by row groups sortOrder // The sort order ); List itemIds = new ArrayList<>(); while(cursor.moveToNext()) { long itemId = cursor.getLong( cursor.getColumnIndexOrThrow(FeedEntry._ID)); itemIds.add(itemId); } cursor.close();
しかし、これらのアクティビティは同じアプリケーション内にあります。データベースとSharedPreferencesは必要ありません。複数のアプリケーション間でデータを共有するのに適しています。 –
のAndroidでの活動の間で値を渡すための2つの方法があります。
1.目的の使用:
例:ログインアクティビティで
、OnClickListiner内の以下のコードを配置:
Intent intent = new Intent(getApplicationContext(), mainActivity.class);
intent.putExtra("username", usernameVariable);
intent.putExtra("password", passwordVariable);
startActivity(intent);
は、
次に、mainActivityで値を受け取るには、次のコードを使用します。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
Intent intent = getIntent();
String u = intent.getStringExtra("username");
String p = intent.getStringExtra("password");
// note: the arguments should match the same as its in the loginActivity
}
2.使用した静的変数:
例:LoginActivityオン
、2つの静的属性を作成します。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
String u=LoginActivity.username;
String p=LoginActivity.password;
}
もう一つの方法があります
私はアクティビティを呼び出すためにインテントを使用しています。ログイン活動が私の最初の活動です。ログインアクティビティからメインアクティビティを呼び出し、メインアクティビティからプロファイルアクティビティを呼び出します。 intendメソッドの場合、ログインアクティビティからプロファイルアクティビティにデータを渡す方法は? –
インテントでは、1つのアクティビティから別のアクティビティに送信する値を添付することができます。 –
...それはあなたの問題を解決しホープ:
Public Class LoginActivity{
public static String username;
public static String password;
protected void onCreate(Bundle savedInstanceState) {
...
}
}
その後、mainActivityクラスでこれらの値を取得するには、次のコードを使用します。次のようにシングルトンクラスを作成してその値を保存して使用することができます。
- 1. 他のアクティビティにデータを渡す(Androidスタジオ)
- 2. Androidスタジオで文字列を渡す
- 3. Retrofit 2でAPIキーを渡す - Androidスタジオ
- 4. アクティビティデータ転送のダイアログフラグメント
- 5. Google Fitアクティビティデータへのアクセス
- 6. JavaクラスのiBeaconメジャーIDをAndroidスタジオのアクティビティに渡す
- 7. Androidスタジオのアクティビティ間でBluetooth接続を渡す
- 8. androidスタジオのアダプタからフラグメントにデータを渡す方法
- 9. Androidスタジオはタブフラグメント間でデータを渡します
- 10. Androidスタジオでアクティビティ間で文字列を渡す
- 11. 古いアクティビティデータを保存します。
- 12. Androidアプリケーションレベルのデータ(アクティビティデータではありません)を保存する場合
- 13. Androidスタジオ
- 14. Androidスタジオ
- 15. Androidスタジオをダウンロード
- 16. Androidスタジオのコンパイラスイッチ
- 17. Androidスタジオのエラー
- 18. Androidスタジオのテーブルレイアウト
- 19. Androidスタジオのデバッグオプション
- 20. Androidスタジオのグラデルアップグレード
- 21. Androidスタジオのポップアップウィンドウ?
- 22. Androidスタジオのスペルチェッカー
- 23. Androidスタジオのボタン
- 24. Androidスタジオのサポートライブラリ
- 25. Androidのスタジオは
- 26. Androidスタジオのメソッド
- 27. Androidのスタジオcompatiblity
- 28. Androidスタジオのグラデルプログラミング
- 29. AndroidスタジオのAppium
- 30. Androidスタジオのアドバイス
「SharedPreference」を使用するか、グローバルに使用するために「静的」として渡す宣言値を作成します。 – W4R10CK