나는 여기에서 문제가있어, 나는 이것에 완전히 새로운 것이다.안드로이드 JSONObject to ListView
내가 뭘하려고하는 것은이 내 코드입니다 ListView에
에 대한 모든 행을 만들어 내 어댑터에 내 어댑터 내부 된 JSONObject를 전달할 수 있습니다 :
private static final String TAG_OS = "android";
protected void onPostExecute(JSONObject json) {
try {
JSONArray jArray = json.getJSONArray(TAG_OS);
if (jArray != null) {
for (int i=0;i<jArray.length();i++){
listdata.add(jArray.get(i).toString());
}
}
menu_list=(ListView)findViewById(R.id.menu_list);
MenuAdapter adapter = new MenuAdapter(MainActivity.this, new ArrayList[] {listdata});
menu_list.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
내 어댑터이 하나입니다
public class MenuAdapter extends ArrayAdapter<ArrayList> {
private final Context context;
private final ArrayList[] values;
public MenuAdapter(Context context,ArrayList[] values) {
super(context, R.layout.menu_main, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.menu_main, parent, false);
if (position % 2 == 1) {
rowView.setBackgroundColor(Color.RED);
} else {
rowView.setBackgroundColor(Color.BLUE);
}
return rowView;
}
대체 ListView를 채우는 방법은 아직 모르지만 대체 배경이있는 TextView 하나뿐입니다. 내가 아직 이해하지 못하는 것은 하나의 행을 세우는 방법이며, 좋은 예를 발견하지 못했다.
어떻게 해결할 수 있습니까? :
지금은 네, 단 하나의 텍스트 뷰이지만 다른 배경색을 설정해야합니다. 다른 행의 이미지와 버튼 같은 다른 요소들 – Nathre
BaseAdapter를 확장하고 ViewHolder를 사용하는 클래스를 만들려면 http://androidadapternotifiydatasetchanged.blogspot.in/을 쓴이 블로그를 살펴보십시오. BaseAdapter를 확장하고 사용자 정의 레이아웃 (.xml) 파일을 사용하는 클래스를 사용하면 어떻게 수행되는지에 대한 기본적인 아이디어를 얻을 수 있습니다. –
Arif, 고맙습니다. D – Nathre