私はAndroidアプリケーションを使用していますが、現在はstrings.xmlリソースファイルでエラーメッセージと成功メッセージを管理しています。今私がこれらのメッセージを変更したいのであれば、私はstrings.xmlファイルを変更し、play-storeでアプリのアップデートを行う必要があります。これは少しオーバーヘッドです。代わりに、これらのメッセージをサーバー側(バックエンド)から管理して、更新なしで変更できるようにします。誰でも私にこれを達成するための最良の方法を提案してもらえますか?エラーと成功のメッセージを処理する最良の方法は、バックエンドからテキストをコピーすることですか?
答えて
あなたが使用飛来している場合、以下の構文解析メソッドをオーバーライドしない限り、Exception.getMessageは()おそらくあなたが探しているものを返さないようにし、このあなたのためhelpfilある
VolleyErrorは、本当にただの拡張例外です拡張されたRequestクラスでVolleyErrorを解析します。これを処理するための本当に基本的な方法のようなものを行うに次のようになります。あなたはあなたの拡張要求クラスにこれを追加した場合
//In your extended request class
@Override
protected VolleyError parseNetworkError(VolleyError volleyError){
if(volleyError.networkResponse != null && volleyError.networkResponse.data != null){
VolleyError error = new VolleyError(new String(volleyError.networkResponse.data));
volleyError = error;
}
return volleyError;
}
}
を、あなたのgetMessage()は少なくともnullを返すべきではありません。私は通常、これを気にする必要はありません。なぜなら、あなたのonErrorResponse(VolleyError e)メソッドの中からすべてを行うのは簡単だからです。
単純化するためにJSONライブラリを使用する必要があります。たとえばGsonを使用するか、追加の外部ライブラリを必要としないApacheのJSONObjectを使用できます。最初のステップは、あなたのサーバーからJSONがJSONObject(JSONObjectsとJsonArraysのどちらかを使用するか、または別のライブラリを使用してJSONObjectに変換することができます)選択肢)、または文字列をパースするだけです。その後、トーストを表示するだけです。
public void onErrorResponse(VolleyError error) {
String json = null;
NetworkResponse response = error.networkResponse;
if(response != null && response.data != null){
switch(response.statusCode){
case 400:
json = new String(response.data);
json = trimMessage(json, "message");
if(json != null) displayMessage(json);
break;
}
//Additional cases
}
}
public String trimMessage(String json, String key){
String trimmedString = null;
try{
JSONObject obj = new JSONObject(json);
trimmedString = obj.getString(key);
} catch(JSONException e){
e.printStackTrace();
return null;
}
return trimmedString;
}
//Somewhere that has access to a context
public void displayMessage(String toastString){
Toast.makeText(context, toastString, Toast.LENGTH_LONG).show();
}
私はこの方法を知っていますが、私は異なるエラーと成功の応答のためのカスタムメッセージを持っているので、私の場合は動作しません。パスワードの変更が成功しました。「あなたのパスワードが変更されました。」と表示されます。次に、「パスワードが更新されました」と変更する場合はどうすればよいですか? –
変更要求はビジネスから来て、サーバー側でのみ変更はアンドロイド側で何もする必要はありません。 – Dilip
これは私がこれ以上の理想的な方法ではないと思うすべてのAPI契約(応答json)の変更を必要とします巨大なアプリケーション。 –
- 1. AngularJS:ngResourceで成功とエラーコールバックを処理する方法は?
- 2. 成功またはエラーで約束を処理する方法
- 3. エラーメッセージと成功メッセージとコードを管理する良い方法はありますか?
- 4. エンティティフレームワークとの並行性を処理する最良の方法
- 5. 正しいプロミスが成功とエラーのコールバックを処理する
- 6. 子アクターからのメッセージのみを処理する方法は?
- 7. Clojureの再フレームでAJAXの成功/エラー応答を処理する方法は?
- 8. データベースをコピーする最良の方法は何ですか?
- 9. PHPでリアルタイム通知を処理する最良の方法は何ですか?
- 10. PythonでValueErrorを処理する最良の方法は何ですか?
- 11. Javaで遅延イベントを処理する最良の方法は何ですか
- 12. Python、メソッドから複雑なデータを返す/処理する最良の方法
- 13. Djangoバックエンドとビデオチャットを実装する最も良い方法は?
- 14. 非ジェネリックリストを反復処理する最良の方法はどれですか?
- 15. Djangoのobjects.getを処理する最も良い方法は何ですか?
- 16. ロケールで成功メッセージを書くことは可能ですか?
- 17. カーネルドライバからユーザスペースドライバにデータをコピーする最良の方法
- 18. は、リダイレクトとメッセージでエラーを処理する方法を表現します。
- 19. コンフルエントカフカで消費者側のメッセージ処理エラーを処理する方法は?
- 20. Selenium WebDriverを使用して動的テキスト(成功と失敗のテキスト)を処理する方法
- 21. Ajaxの成功からPDFの結果データを処理する
- 22. 春のセキュリティでログイン成功を処理する方法
- 23. ネットワーク経由でファイルをコピーするときにエラーを処理する方法
- 24. PythonでHTMLを処理する最も良い方法は何ですか?
- 25. WIXインストール成功ダイアログのメッセージを変更することは可能ですか
- 26. 石鹸からハッシュ応答を処理する最良の方法
- 27. Railsでモジュールを使ってエラーを処理する最も良い方法は?
- 28. 複数の電子メールを検証し、Railsのエラーを処理する最良の方法は何ですか?
- 29. api.aiの範囲を処理する最も良い方法は?
- 30. ZeroDivisonErrorを処理する最良の方法は?
https://cloud.google.com/appengine/docs/standard/java/gettingstarted/creating-guestbook –
ねえ、あなたがサーバーから管理することができます。ここでは
はあなたが始めるためにいくつかのサンプルコードですあなたがAPIにヒットしたときに、このAPIの成功が成功すれば、成功したコードとメッセージと応答データを返します。失敗すると、サーバーからエラーコードとエラーメッセージが取得され、トースト、またはあなたの都合に合わせて。あなたが使用するAPIを打つための – Dilip
Volley or Retrofit ??? – Dilip