2013-08-01 3 views
1

이것을 테이블 레이아웃에 어떻게 표시합니까? 다음과 같은 json 파일을 표시하고 싶습니다. Image1TableLayout에 JSON을 표시하는 방법은 무엇입니까?

아래 코드에서 이미지 이름과 URL을 구문 분석하고이를 표시하는 네트워크 연결이 작동하고 있습니다. 난 그냥 항목 수량과 같은 내 json 파일에 몇 가지 새로운 속성을 추가하는 방법을 알고 싶다.

내 json 구문 분석 코드에서 액세스하고이 이미지와 같은 레이아웃으로 표시하십시오.

이 내 JSON 파일

{ "worldpopulation": 
    [ 
     { 
      "rank":1, 
      "name": "Angelina", 
      "url": "http://www.bounty4u.com/android/images/angie.jpg" 
     }, 
     { 
      "rank":2, 
      "name": "Ashton ", 
      "url": "http://www.bounty4u.com/android/images/ashton.jpg" 
     }, 
     { 
      "rank":3, 
      "name": "Jackman", 
      "url": "http://www.bounty4u.com/android/images/hugh.jpg" 
     } 
    ] 
} 

입니다 이건 내 코드입니다 : 당신은 테이블 레이아웃을 사용하려고하는 이유

public class fifthscreen extends Activity { 

HorizontalListView listview; 
CategoryListAdapter3 cla; 
String DescriptionAPI; 

static ArrayList<Long> Category_ID = new ArrayList<Long>(); 
static ArrayList<String> Category_name = new ArrayList<String>(); 
static ArrayList<String> Category_image = new ArrayList<String>(); 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.fifthscreen); 


    listview = (HorizontalListView) this.findViewById(R.id.listview2); 

     cla = new CategoryListAdapter3(fifthscreen.this); 


     DescriptionAPI = Utils.DescriptionAPI; 

     //  clearData(); 
      try { 

       HttpClient client = new DefaultHttpClient(); 

    HttpConnectionParams.setConnectionTimeout(client.getParams(), 15000); 
       HttpConnectionParams.setSoTimeout(client.getParams(), 
    15000); 
       HttpUriRequest request = new HttpGet(DescriptionAPI); 
       HttpResponse response = client.execute(request); 
       InputStream atomInputStream = 
     response.getEntity().getContent(); 
       BufferedReader in = new BufferedReader(new 
     InputStreamReader(atomInputStream)); 

       String line; 
       String str = ""; 
       while ((line = in.readLine()) != null){ 
        str += line; 
       } 


        JSONObject json = new JSONObject(str); 
        JSONArray data = 
     json.getJSONArray("worldpopulation"); 



        for (int i = 0; i < data.length(); i++) { 
         JSONObject object = data.getJSONObject(i); 

        // JSONObject category = 
       object.getJSONObject("Category"); 


          Category_ID.add(Long.parseLong(object.getString("rank"))); 
         Category_name.add(object.getString("name")); 
         Category_image.add(object.getString("url")); 

         Log.d("Category name", Category_name.get(i)); 
         listview.setAdapter(cla); 


        } 


      } catch (MalformedURLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
      // IOConnect = 1; 
       e.printStackTrace(); 
      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 


    public class CategoryListAdapter3 extends BaseAdapter { 

private Activity activity; 
private ImageLoader imageLoader; 

public CategoryListAdapter3(Activity act) { 
    this.activity = act; 
    imageLoader = new ImageLoader(act); 
} 

public int getCount() { 
    // TODO Auto-generated method stub 
    return fifthscreen.Category_ID.size(); 
} 

public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    ViewHolder holder; 

    if(convertView == null){ 
     LayoutInflater inflater = (LayoutInflater) activity 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = inflater.inflate(R.layout.viewitem2, null); 
     holder = new ViewHolder(); 

     convertView.setTag(holder); 
    }else{ 
     holder = (ViewHolder) convertView.getTag(); 
    } 


    holder.txtText = (TextView) convertView.findViewById(R.id.title2); 
    holder.imgThumb = (ImageView) convertView.findViewById(R.id.image2); 

    holder.txtText.setText(fifthscreen.Category_name.get(position)); 
// 
imageLoader.DisplayImage(Utils.AdminPageURL+CategoryList.Category_image.get(position), 
     imageLoader.DisplayImage(fifthscreen.Category_image.get(position), 
      activity, holder.imgThumb); 

    return convertView; 
} 


} 
+0

단지 광고 새로운 배열 아래 링크를 어떻게 그 ??? – user2589245

답변

0

. listview와 같은 기능을 사용할 수 있으며이 기능을 사용하는 것이 좋습니다. tablelayout과 같은 다중 컬럼 기능을 제공합니다.

link

+0

이런 식으로 json 데이터를 표시하는 방법을 모른다. 이 이미지 http://imgur.com/v4WpJdN과 같은 화면에 내 json 파일에 더미 "항목" "수량"을 추가하십시오.이 화면처럼 표시 – user2589245

+0

메신저를 사용하지 않는 인스턴트 메신저 데이터 형식 json 파일을 받고 있습니다. 내 litle 부탁 몇 가지 노드 또는 어레이 inmy json 파일을 추가 하고이 이미지 http://imgur.com/v4WpJdN plz – user2589245

+0

같은 표시 할 이미지를 표시하는이 데이터를 알지 못합니다 http://imgur.com/v4WpJdN입니다 배열 또는 json 파일에있는 여러 노드 위에 붙여 넣기 내 json 파일을 붙여 넣으십시오. "항목"수량 "액세스와 같은 새로운 데이터를 추가하십시오.이 코드는 json 코드로 표시되고이 화면과 동일하게 나타납니다. http://imgur.com/v4WpJdN – user2589245

0

사용 구글 GSON

GSON 자바가 JSON 표현으로 개체로 변환하는 데 사용할 수있는 자바 라이브러리를 참조하십시오. JSON 문자열을 동등한 Java 객체로 변환하는데도 사용할 수 있습니다. Gson은 소스 코드가없는 기존 오브젝트를 포함하여 임의의 Java 오브젝트에 대해 작업 할 수 있습니다.

쉬운 PHP에로 json_encode()를 사용하는

보는 이도을 내 JSON 파일 수량 항목 및 레이아웃에 액세스 및 디스플레이

read

+0

제 답장을 부탁드립니다. 게시 http://stackoverflow.com/questions/17990514/how-to-show-json-in-column-my-json-not-display – user2589245

관련 문제