2017-12-12 12 views
0

내 json의 데이터를 listview에 표시하고 싶습니다. 여기에 내가 그것을 실행할 때패키지 이름을 표시하는 listview의 항목

private void loadIntoListView(String json) throws JSONException { 
     List<Itemadapter> items = new ArrayList<Itemadapter>(); 
     JSONArray jsonArray = new JSONArray(json); 
     String[] ba = new String[jsonArray.length()]; 
     for (int i = 0; i < jsonArray.length(); i++) { 
      JSONObject obj = jsonArray.getJSONObject(i); 
      String code  = obj.getString("ItemCode"); 
      String name  = obj.getString("ItemName"); 
      String photo = obj.getString("PhotoName"); 
      items.add(new Itemadapter(code, name,photo)); 
      Log.i(code, code); 

     } 
     Toast.makeText(getActivity(), items.toString(), Toast.LENGTH_LONG).show(); 

     ArrayAdapter<Itemadapter> mArrayAdapter = new ArrayAdapter<Itemadapter>(getActivity(),android.R.layout.simple_expandable_list_item_1,items); 
     listView.setAdapter(mArrayAdapter); 
    } 

는 오류 Itemadapter

public class Itemadapter { 

    String ItemCode; 
    String ItemName; 
    String ItemPhoto; 

    public Itemadapter(String ItemCode, String ItemName, String ItemPhoto) { 
     this.ItemCode = ItemCode; 
     this.ItemPhoto = ItemPhoto; 
     this.ItemName = ItemName; 
    } 

    public String getCode() { 
     return ItemCode.toString(); 
    } 

    public String getItemPhoto() { 
     return ItemPhoto.toString(); 
    } 

    public String getItemName(){ 
     return ItemName.toString(); 
    } 

} 

이없는 내 시도 할 것입니다. 그러나, 내 listview에 내가 multiplerows에서이 같은

com.example.boby.firstapp.Itemadapter의 @ (somecode)

내가 그것을 어떻게 해결할 수를 참조? 내가 뭐 놓친 거 없니 ?

+0

를 표시하려면 무엇을해야 하는가? itemCode, itemName 또는 itemPhoto? –

+0

listview에 표시 할 내용? itemCode, itemName 또는 itemPhoto? –

+0

@ IshaanKumar 예, 그런 것 같아 – YVS1102

답변

1

당신은 ItemadaptertoString()를 재정의해야합니다

public class Itemadapter { 

    String ItemCode; 
    String ItemName; 
    String ItemPhoto; 

    public Itemadapter(String ItemCode, String ItemName, String ItemPhoto) { 
     this.ItemCode = ItemCode; 
     this.ItemPhoto = ItemPhoto; 
     this.ItemName = ItemName; 
    } 

    public String getCode() { 
     return ItemCode.toString(); 
    } 

    public String getItemPhoto() { 
     return ItemPhoto.toString(); 
    } 

    public String getItemName(){ 
     return ItemName.toString(); 
    } 

    @Override 
    public String toString() { 
     return ItemCode + " " + ItemName; 

} 
0

오류는 getters 메서드 ItemAdapter 클래스에서 모든 getters에서 .toString()을 제거하십시오.

public class Itemadapter { 

    String ItemCode; 
    String ItemName; 
    String ItemPhoto; 

    public Itemadapter(String ItemCode, String ItemName, String ItemPhoto) { 
     this.ItemCode = ItemCode; 
     this.ItemPhoto = ItemPhoto; 
     this.ItemName = ItemName; 
    } 

    public String getCode() { 
     return ItemCode; 
    } 

    public String getItemPhoto() { 
     return ItemPhoto; 
    } 

    public String getItemName(){ 
     return ItemName; 
    } 

} 

도움이되기를 바랍니다.

1
ArrayAdapter<Itemadapter> mArrayAdapter = new ArrayAdapter<Itemadapter>(getActivity(),android.R.layout.simple_expandable_list_item_1,items); 

이 오류 때문에이 라인의 온다. 설명하겠습니다. listview에 itemCode를 표시하려면 코드가 다음과 같아야합니다.

ArrayList<String> itemsCode = new ArrayList<>(); 
for(int i=0;i<items.size();++i){ 
    itemsCode.add(item.get(i).getCode()); 
} 
ArrayAdapter<> mArrayAdapter = new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1,itemsCode); 

세 번째 매개 변수를 사용하면 목록보기에 표시하고 싶은