0
Textview
을 @android:id/text1
에서 팽창시킬 수 있습니까? 자신 만의 레이아웃을 만들고 싶지 않습니다. 약간 수정 된 텍스트를 얻으실 수 있습니다.ActionBarSherlock에 의해 확장 된 안드로이드 스피너 레이아웃을 부 풀릴 수 있습니까?
여기 내 코드입니다 :
첫째, 내가
private List<HashMap<String, String>> dataCities = new ArrayList<HashMap<String, String>>();
//Hashmap with keys and values
//id - 0
//name - default
두 번째로 데이터를 저장하는 변수를 생성, 나는 내 리스너를 생성,
@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);
}
세 번째에서 onCreate
에서 사용자 정의 어댑터를 만들었습니다. 그것은 작동하지만 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;
}
}
내가 빈 회 전자 데이터를 얻을 왜 누군가가 나에게 수
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;
}
}
ArrayAdapter와 내 사용자 정의입니까? (회 전자는 비어 있음). 그리고 새로운 레이아웃을 만들지 않고 수정 된 텍스트를 얻는 방법은 무엇입니까? sherlock 스피너 아이템 레이아웃을 사용하고 싶습니다. 도와주세요.
//In here you update your activity's list to the returned values
dataCities = parseJSonArray(array);
Log.d(TAG, "End of parsing");
//But the adapter is using the original value of dataCities (new ArrayList<HashMap<String, String>>())
citiesAdapter.notifyDataSetChanged();
어댑터가 ArrayAdapter와에 의존하기 때문에, 가장 쉬운 해결책은 단지 새 어댑터를 만들 수 있습니다 데이터 : 간단한
제발, notifyDataSetChanged가 여기에서 작동하지 않는 이유를 말해 주실 수 있습니까? – deadfish
Errr "간단합니다. 어댑터의 목록이 검색 한 목록과 다릅니다." 코드 스 니펫에서 자세히 설명합니다. – dmon