質問:onCreate
の前に変数を設定すると、後でその配列を使用するアダプタを更新するのにnotifyDataSetChanged()
を使用できますか?notifyDataSetChanged()は私のスピナーの配列を更新しません
私はonCreate
の前に私のcity_values array
を扇動しています - これは私がエラーを表示しないようにスクリプトを得ることができる唯一の方法です。しかし、ユーザーがスピナーから状態を選択すると、notifyDataSetChanged()
を使用して、city_values配列をアタッチするアダプターを更新する必要があります。以下は私のコードの小さな部分です。私は自分の問題はcity_valueを早めに設定しなければならないと思う。どうすればこの問題を回避できますか?
public class SearchActivity extends Activity{
ArrayAdapter<String> adapter2;
String city_values[] = new String[]{"Please select a state first."};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_layout)
adapter2 = new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item, city_values);
adapter2.setDropDownViewResource(R.layout.city_spinner_layout);
cityspinner.setAdapter(adapter2);
//On select of State spinner use item value to query and get citys reassign those values back to city_values and then tell adapter2 notifyDataSetChanged()
for (int i=0; i<jsonArray.length(); i++)
{
String styleValue = jsonArray.getJSONArray(i).getString(0);
Log.d(TAG, styleValue);
city_spinner[i] = styleValue;
}
city_values = city_spinner;
adapter2.notifyDataSetChanged();
あなたの提案は理にかなっているが、どのように私は、文字列である私のcity_valuesに私city_spinner []を得るのですか?都市名がどのように配列に保存されるかを示す質問を更新しました。 – Denoteone
私の更新された回答を参照してください...またはカジュアルなチャットルームに来て... –