Androidアプリからデータベースにデータを挿入する方法に関するオンラインチュートリアルに従い、この小さな部分を除くすべてが機能している
_List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));
_
NameValuePairとBasicNameValuePairは、openConnection()
を支持して廃止されました。それと新しい価値の関連付けを作成するにはどうすればよいですか? http://developer.Android.com/reference/Java/net/URL.html#openConnection()
OpenConnectionで名前と値のペアを作成する方法を知っている人はいますか?私はどこでも探していました。
ContentValues
を使用できます。次に例を示します。
ContentValues values = new ContentValues();
values.put("username", name);
values.put("password", password);
database.insert(Table_name, null, values);
私はちょうど同じ問題に遭遇しました。 org.Apache.http
の非推奨のクラスは、API 23
で削除になりました。
Android.util.Pair
を使用することになりました。完全に機能し、コードも短くなります。
List<Pair<String, String>> params = new ArrayList<>();
params.add(new Pair<>("username", username));
params.add(new Pair<>("password", password));
NameValuePairの代替。また、以下で説明するように、そこから名前と値を取得できます。ここでキーは名前です。
作成:
ContentValues values = new ContentValues();
values.put("key1", "value1");
values.put("key2", "value2");
キーと値を取得します。
for (Map.Entry<String, Object> entry : values.valueSet()) {
String key = entry.getKey(); // name
String value = entry.getValue().toString(); // value
}
代わりにhttpmime.jarファイルを使用できます。これは、NameValuePairよりも適切に機能します。こちらからダウンロードできます ダウンロード
MultipartEntity multi = new MultipartEntity();
multi.addPart("name", new StringBody("Raj"));
multi.addPart("Id", new StringBody("011"));
このjarをプロジェクトに追加してから使用します。
好みに応じてcontentvaluesまたはhashmapを使用できます。
コンテンツ値を使用しました
ContentValues contentValues = new ContentValues();
contentValues.put("key1","value1");
contentValues.put("key2","value2");
そして、uが投稿しているデータがフォームデータである場合、ここでuはそれをフォームデータに変換することができます
public String getFormData(ContentValues contentValues) throws UnsupportedEncodingException {
StringBuilder sb = new StringBuilder();
boolean first = true;
for (Map.Entry<String, Object> entry : contentValues.valueSet()) {
if (first)
first = false;
else
sb.append("&");
sb.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
sb.append("=");
sb.append(URLEncoder.encode(entry.getValue().toString(), "UTF-8"));
}
return sb.toString();
}
アプリケーションでNameValuePair
を本当に使用したい場合は、useLibrary 'org.Apache.http.legacy'
をgradleに追加できます。
buildtypes{
//------------
//----------
}
useLibrary 'org.Apache.http.legacy'