2012-04-14 2 views
0

나는 Android가 처음이며 간단한 질문이 있습니다. 현재 사용자가 다양한 제품을 추가, 제거 및 탐색 할 수있는 제품 응용 프로그램을 개발 중입니다. 응용 프로그램은 미리 정의 된 XML 기반 레이아웃 파일을 템플릿으로 사용하여 전체 화면을 채우고 현재 제품 세부 정보를 표시합니다. 사용자가 새 제품을 추가 할 때 동일한 레이아웃 파일을 다시 사용하지만 새 제품 정보로 채우고 싶습니다. 또한 이전에 추가 된 제품 (예 : ArrayList)을 유지하고 사용자가 가로로 (왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽으로) 밀어서이 목록을 탐색 할 수 있습니다. 이제는 각 제품 (보기, 하위보기 등)을 표현하는 데 가장 좋은 점은 무엇이며 동일한 XML 기반 레이아웃 파일을 재사용하여 다른 제품의 세부 정보를 표시하는 방법입니다. 제 영어 실례와 도움을 미리 부탁드립니다다른 정보를 표시하기 위해 XML 레이아웃 파일 재사용 (Android Application)

+0

공통 레이아웃이있는 경우 을 사용하여 어떤 문제가 발생하면 다른 모든 레이아웃에 공통 레이아웃을 삽입하십시오. –

답변

1

ArrayAdapter를 확장하는 새 클래스를 만든 다음 getView() 메서드를 재정 의하여 사용자 정의 레이아웃을 확장 할 수 있습니다. getView()는 단일 행에 대한보기를 리턴합니다. 이렇게하면 레이아웃을 다시 사용할 수 있습니다. (

// The variable products is your initial list of products. 
ProductAdapter adapter = new ProductAdapter(this, products); 
setListAdapter(adapter); 

당신이 adapter.add 중 하나를 호출하여 ArrayAdapter와이를 추가 할 수있는 제품을 추가 : ListActivity 사용의 목록을 표시하려면

public class ProductAdapter extends ArrayAdapter<Product> { 

    private LayoutInflater li; 

    public ProductAdapter(Context context, List<Product> products) { 
     super(context, 0, products); 
     li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     // Get the product of the position 
     Product product = getItem(position); 

     View v = convertView; 
     if (v == null) { 
      // Your custom layout file for a single row in the list. 
      v = li.inflate(R.layout.product_row, null); 
     } 

     // Populate your view here. Use v.findViewById(). 

     return v; 
    } 

} 

: 그래서 같이 보일 것입니다) (목록 끝에 제품을 추가하려는 경우) 또는 insert() (Product 목록에 새 제품을 삽입 할 위치를 지정) 메소드를 ProductAdapter에 추가하십시오. 그런 다음 adapter.notifyDataSetChanged()를 호출하여 어댑터에 데이터가 변경되었으며 목록을 새로 고쳐야 함을 알릴 수 있습니다.

1

설명하는 내용은 ViewPager에 의해 구현됩니다. API 참조 외에 개발자 사이트에는 blog post이 있습니다.

구현하려면 ViewPager에 대한 각보기의 세부 정보를 채우기 위해 PagerAdapter 하위 클래스를 만들어야합니다.