당신은 무엇을 찾고있는 사용자 정의 Adapter
와 ListView
입니다. 첫 번째 항목은 비슷한 항목의 목록을 표시합니다. 두 번째 것은 객체 목록에 따라이 목록을 채 웁니다.
<TextView
android:id="@+id/tvLabel1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray" />
<TextView
android:id="@+id/tvValue1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
그것은 각 항목에 대한 템플릿으로 사용되는 레이아웃 될 것입니다 :
그래서 첫째,
listview_row.xlm라는 이름의 XML 파일로 이러한 견해를했습니다.
그런 다음 레이블과 값을 포함 할 것이다 Item
표현하는 객체를 생성 : 이제
public class Item {
private String label;
private String value;
public Item(String label, String value) {
this.label = label;
this.value = value;
}
/* Getters and Setters */
}
를, 사용자 정의 Adapter
만들어야합니다 그런 다음
public class MyAdapter extends ArrayAdapter<Item> {
private List<Item> items;
private Context context;
public MyAdapter(Context context, int resource, List<Item> items) {
super(context, resource, items);
this.items = items;
this.context = context;
}
/* This method creates the items. It basically set TextViews' texts based
on the list of items given */
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.listview_row, null);
TextView label = (TextView) v.findViewById(R.id.tvLabel1);
TextView value = (TextView) v.findViewById(R.id.tvValue1);
Item current = items.get(position);
label.setText(current.getLabel());
value.setText(current.getValue());
return v;
}
}
을에 넣고 기본 레이아웃 :
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
마지막으로, 귀하의 엄마
public void setUpListView() {
List<Item> items = new ArrayList<Item>();
items.add(new Item("1", "value1"));
items.add(new Item("2", "value2"));
ListView listView = (ListView) findViewById(R.id.listview);
MyAdapter adapter = new MyAdapter(this, R.layout.listview_row, items);
listView.setAdapter(adapter);
}
편집 : 활동에, 다음과 같은 방법을 생성하고 onCreate
방법의 끝에서 호출
각 항목 사이의 공간을 제거하려면, 당신은 정의에 이러한 속성을 추가해야
android:divider="@null"
android:dividerHeight="0dp"
모든 목록 항목 다음에 라이트 라인이 표시되는 이유는 무엇입니까? [Image] (http://imgur.com/S2p9drv) –
이것은 기본적으로 이와 같습니다. 당신은'android : divider = "@ null"'과'android : dividerHeight = "0dp"'를 사용하여 그것을 제거 할 수 있습니다. –
완벽하게 작동합니다. 감사. –