1

JSON URL から値を取得し、それを文字列変数に格納しています。次に、その値をスピナーに表示したいと思います。strings.xml ファイルに配列リストを作成しました。xml ファイルには、次のコードが含まれています。

<string name="credit_card_title">Card Type</string>
<string-array name="credit_card">
<item >Select</item>
<item >Visa</item>
<item >MC</item>
<item >Amex</item>
<item >Discover</item>

私のスピナーコードは次のとおりです。

<Spinner
android:id="@+id/crdtcrd_crdtype"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/credit_card"
android:prompt="@string/credit_card_title" />

json url から値を取得した後、変数名に保存していますString cardtype

cardtypeスピナーに値を表示するにはどうすればよいですかcrtdcrd_crdtype....

json の URL は次のとおりです。

http://mygolfteetime.com/iphone/login/ramu@gmail.com/123456

この URL から値を取得する必要があり、値を取得したcardtype後、スピナーに表示する必要があります。

これらの値cardypevisa, mc, amex and discover すべてstrings.xmlファイルにあり、値を取得した後、スピナーに表示する必要があります..

まだ解決策を見つけることができない助けが必要..

cardtype次のコードを使用して値を表示しようとしています。

crdtcrd_crdtype.setSelection(cardtype);

しかし、いくつかのエラーが表示されます.. 1. setSelected(..) に変更します 2. cardtype のタイプを int に変更します

前もって感謝します...

4

1 に答える 1

-1

以下のサンプルコードを見つけてください:

レイアウトファイル:main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Spinner
    android:id="@+id/cmbNames"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

</LinearLayout>

レイアウト: spinner_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/tvName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</LinearLayout>

コード: MainActivity.java

public class MainActivity extends Activity {
private static final String NAME = "name";

//{"name":["abc","pqr","xyz"]}
private String jsonNames = "{\"" + NAME + "\":"
        + "[\"abc\",\"pqr\",\"xyz\"]}";
private SimpleAdapter adapter;
private Spinner cmbNames;
private List<HashMap<String, String>> lstNames;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    populateSpinner(jsonNames);

    cmbNames = (Spinner) findViewById(R.id.cmbNames);
    adapter = new SimpleAdapter(this, lstNames, R.layout.spinner_item,
            new String[] { NAME }, new int[] { R.id.tvName });
    cmbNames.setAdapter(adapter);
}

private void populateSpinner(String jsonString) {
    lstNames = new ArrayList<HashMap<String, String>>();

    try {
        JSONObject jsonObj = new JSONObject(jsonNames);
        JSONArray jArray = jsonObj.getJSONArray(NAME);
        for (int i = 0; i < jArray.length(); i++) {
            addNewName(jArray.getString(i));
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

}

private void addNewName(String name) {
    HashMap<String, String> map = new HashMap<String, String>();
    map.put(NAME, name);
    lstNames.add(map);
}

}
于 2012-08-27T10:29:28.293 に答える