Android Studio에서 JSON Object의 항목을 Listview에 넣으려고하는데 프로그램이 제대로 작성되지 않고 작동하지 않아 오류가 발생하지 않습니다.Listview에 JSON 객체 넣기
public class Terminal {
@JsonProperty("terminal") public String terminal;
@JsonProperty("registered") public boolean registeredTerminals;
@JsonProperty("ip") public String ip;
@JsonProperty("user_agent") public String userAgent;
public String getTerminal(){
return terminal;
}
public Boolean getRegisteredTerminals(){
return registeredTerminals;
}
public String getIp(){
return ip;
}
public String getUserAgent(){
return userAgent;
}
}
내 어댑터 클래스 :
public class TerminalStatusAdapter extends ArrayAdapter<Terminal> {
private TerminalHolder holder;
private Context context;
private List<Terminal> items;
public TerminalStatusAdapter(Context context, List<Terminal> items) {
super(context, R.layout.terminal_status_row);
this.context = context;
this.items = items;
}
/*
@Override
public int getCount() {
if(items == null) {
items = new Terminal();
}
return items;
}*/
@Override
public Terminal getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//final Terminal item = items.get(position);
holder = null;
if(convertView == null){
convertView = LayoutInflater.from(this.context).inflate(R.layout.terminal_status_row, parent, false);
holder = new TerminalHolder();
holder.txtTerminalStatus = (TextView) convertView.findViewById(R.id.txt_terminal_status);
holder.txtRegisteredTermninal = (TextView)convertView.findViewById(R.id.txt_registered_status);
holder.txtIp = (TextView)convertView.findViewById(R.id.txt_ip);
holder.txtUserAgent = (TextView)convertView.findViewById(R.id.txt_user_agent);
convertView.setTag(holder);
}else {
holder = (TerminalHolder) convertView.getTag();
}
holder.txtTerminalStatus.setText(items.get(position).getTerminal());
holder.txtRegisteredTermninal.setText(items.get(position).getRegisteredTerminals().toString());
holder.txtIp.setText(items.get(position).getIp());
holder.txtUserAgent.setText(items.get(position).getUserAgent());
return convertView;
}
private class TerminalHolder {
public TextView txtTerminalStatus;
public TextView txtRegisteredTermninal;
public TextView txtIp;
public TextView txtUserAgent;
}
}
및
다음public class TerminalStatus {
@JsonProperty("terminals") private List<Terminal> terminals;
public List<Terminal> getTerminals(){return terminals;}
}
터미널 클래스 :
여기{
"success": true,
"body": {
"terminals": [
{
"terminal": "terminal1",
"registered": true,
"ip": "123456789",
"user_agent": "X-Lite "
},
{
"terminal": "terminal2",
"registered": false
},
{
"terminal": "terminal3",
"registered": false
},
{
"terminal": "terminal4",
"registered": false
}
]
},
"error": null
}
는 TerminalStatus 클래스입니다 : 여기 는 JSON 개체입니다 마이 n 클래스 JSON의 내용을 표시 할 수없는 Listview가있는 개체 Object :
public class CallTerminal extends Fragment{
private ListView terminalStatusRegistered;
private TerminalStatusAdapter terminalStatusAdapter;
public ArrayList<Terminal> terminalRegisteredData = null;
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(vm.voicemail.app.R.layout.call_terminal_fragment, container, false);
terminalStatusRegistered = (ListView)v.findViewById(R.id.list_registered_terminals);
return v;
}
try {
ApiResponse<TerminalStatus> resp = new ApiResponse<TerminalStatus>(s, TerminalStatus.class);
try {
terminalStatus = resp.getObject();
terminalRegisteredData = new ArrayList<Terminal>();
terminalStatusAdapter = new TerminalStatusAdapter(getContext(), terminalRegisteredData); terminalStatusRegistered.setAdapter(terminalStatusAdapter);
} catch (Exception e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
어디가 잘못 되었나요? 감사.
당신이 단자를 추출하고 있습니까 부분 "s"와 그 방법으로 보내는 것? "s"문자열의 값을 확인하십시오. – sumandas
제발, 당신은 더 명백 할 수 있습니까? – ruru
확실히, ApiResponse resp = 새로운 ApiResponse (s, TerminalStatus.class); 행은 변수 s를 사용하고이 변수의 값을 확인하십시오. –
sumandas