2011-09-30 6 views
0

가능한 중복 :
Can I have a List view and images icon with textview on the Android각 행에 ImageView 및 TextView가있는 안드로이드 ListView를 만드는 방법은 무엇입니까?

어떻게 각 라인에서 이미지 뷰와 텍스트 뷰와 안드로이드의 ListView를 만들기 위해?

ListView가있는 화면이있는 Android 앱에서 각 행마다 ImageView와 TextView가 필요합니다 ... 누군가가 나를 도와서 단서와 샘플을 도울 수 있습니까?

+0

[Android 개발자 자원] (http://developer.android.com/resources/index.html) –

답변

0

즉, ListActivity를 사용해야합니다. 각 행에 대해 레이아웃 xml을 설정할 수 있습니다.

은 무엇 당신이해야 할 것은 동일이 tutorial:

를 살펴 보자하지만, 텍스트 뷰에 추가하여 이미지 뷰를 가지고 적응할.

4

ListAdapter 방법을 가르쳐야합니다. 이것은 getView()을 서브 클래스 화하고 ArrayAdapter 인 경우 무시할 수 있습니다. 사용자 정의 행을 설계하고 행을로드 할 때 ImageViewTextView에 대한 데이터를 쏟아 넣을 수 있습니다.

Here is a free excerptone of my books에서 처리됩니다. Here is the source code을 해당 장에서 프로파일 링 한 샘플 프로젝트에 추가하십시오.

0

앞에서 설명한 것처럼 어댑터를 확장하여 ListActivity에서 사용해야합니다. TextView와 ImageView를 사용하여 XML 파일을 만듭니다 (LinearLayout 또는 기타 레이아웃 사용). TextView 및 ImageView에 ID를 추가하여 목록의 위치에 따라 ID를 변경할 수 있습니다.

다음은 3 개의 행을 만들고 그 안에 텍스트를 a, b, c로 설정하는 코드 예제입니다.

public class MyActivity extends ListActivity { 

    private String[] data = {"a","b","c"}; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setListAdapter(new MyAdapter(this, R.layout.rowxml, data)); 
    } 

    private class MyAdapter extends ArrayAdapter<String> { 

     public MyAdapter(Context c, int i, String[] s) { 
      super(c, i, s); 
     } 

     @Override 
     public View getView(int position, View v, ViewGroup parent) { 
      if (v == null) { 
       LayoutInflater vi = (LayoutInflater)getSystemService(
        Context.LAYOUT_INFLATER_SERVICE); 
       v = vi.inflate(R.layout.rowxml, null); 
      } 

      TextView tw = (TextView) v.findViewById(R.id.text); 
      if (tw != null) tw.setText(data[position]); 

      // You can do something similar with the ImageView 

      return v; 
     } 
    } 
} 
관련 문제