Textview
から膨らませることは可能@android:id/text1
ですか?独自のレイアウトを作成したくありません。テキストを少し変更したいだけです。
これが私のコードです:
まず、データを格納する変数を作成しました
private List<HashMap<String, String>> dataCities = new ArrayList<HashMap<String, String>>();
//Hashmap with keys and values
//id - 0
//name - default
次に、onCreate でカスタム アダプターを作成しました
@Override
protected void onCreate(Bundle savedInstanceState) {
//...
Spinner citiesSpinner = (Spinner) findViewById(R.id.city_sp);
citiesAdapter = new CustomArrayAdapter(this, R.layout.sherlock_spinner_item, dataCities);
citiesSpinner.setAdapter(citiesAdapter);
}
3 番目に、リスナーを作成しました。動作しますが、notifyDataSetChanged を呼び出した後は何も起こりません。なんで?
@Override
public void onRequestJsonResponded(RequestType type, JSONArray array) {
//my enum type
switch (type) {
case cities:
//returns hashmap in arraylist, ArrayList<HashMap<String,String>> ...
dataCities = parseJSonArray(array);
Log.d(TAG, "End of parsing");
citiesAdapter.notifyDataSetChanged();
break;
case mark:
//...
break;
case model:
break;
}
}
これが私のカスタムarrayadapterです
private class CustomArrayAdapter extends ArrayAdapter<HashMap<String, String>> {
public CustomArrayAdapter(Context context, int textViewResourceId, List<HashMap<String, String>> objects) {
super(context, textViewResourceId, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = LayoutInflater.from(getContext());
View v = layoutInflater.inflate(R.layout.sherlock_spinner_item, null);
TextView tv = (TextView)v.findViewById(android.R.id.text1);
tv.setText(getItem(position).get("name"));
return v;
}
}
空白のスピナー データを取得する理由を誰か教えてもらえますか? (スピナーは空です)。また、新しいレイアウトを作成せずにテキストを変更するにはどうすればよいですか? シャーロック スピナーのアイテム レイアウトを使いたいだけです。助けてください。