現在、私はスピンナーを2つの方法で取り込むことができますが、私は必要としているのですが、スピナーのテキストはJSON形式です。 JSONから名前を抽出して使用すると、名前の値のペアの値の一部が失われます。JSONArrayとBaseAdapterの組み合わせ
私は、私が行う必要があることを行うためにBaseAdapterサブクラスを使用する必要があることを知りました。以下のコードは私が好きなように動作しますが、データはハードコードされていますが、これは役に立たないものです。
私がやりたいことは、MyDataにデータベースから返されたJSONデータを入力することです。
このコード:このBaseAdapterで
final MyData items[] = new MyData[4];
items[0] = new MyData("Ken's Plimbing","125738468");
items[1] = new MyData("Peninsula Pests","3787906453");
items[2] = new MyData("Joe's Electrical","129754354");
items[3] = new MyData("Garderning Supplies","097803452");*/
ArrayAdapter<MyData> adapter = new ArrayAdapter<MyData>(PropertyManagement.this, android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
userSpinner.setAdapter(adapter);
userSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
MyData d = items[position];
Toast.makeText(PropertyManagement.this, d.getValue(), Toast.LENGTH_SHORT).show();
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
:
class MyData {
public MyData(String spinnerText, String value) {
this.spinnerText = spinnerText;
this.value = value;
}
public String getSpinnerText() {
return spinnerText;
}
public String getValue() {
return value;
}
public String toString() {
return spinnerText;
}
String spinnerText;
String value;
作品!
しかし、データベースから返されたJSON配列をMyDataに書き込む必要があります。私はこの記事の最初の段落にあるように次のようにしています。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(PropertyManagement.this, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
final MyData items[] = new MyData[4];
for (int i = 0; i < myUsers.length(); ++i)
{
adapter.add(myUsers.getJSONObject(i).getString("BusinessName"));
};
userSpinner.setAdapter(adapter);
JSONArray /文字列は次のようになり、
{"BusinessName":"Petes Plumbing","BusinessPhone":"0434943743"},{"BusinessName":"Joes Electrical","BusinessPhone":"0466367279"}
任意の助けいただければ幸いです。
乾杯、
マイク。
これは面白いです、私はちょうどそれを働いて、プレスを停止すると言って戻ってきました。私のコードはあなたのものとまったく同じです!説明にも感謝します。それはあなたの頭の上にすべてを取得し、あなたの答え、歓声、マイクに感謝するために少し時間がかかります。 –