ListView
은 주로 변경 가능한 데이터에 사용됩니다. 매번 같은 방식으로 표시 할 수있는 데이터가 있고 성장/삭제할 수있는 경우 ListView가 좋은 옵션입니다.
정적 데이터가있는 경우 정적 레이아웃 (예 : TableLayout, LinearLayout 등)을 사용하는 것이 좋습니다. 그것은 모두 가지고있는 데이터와 사용 방법에 달려 있습니다.
스마트 폰에 공간이 없으므로 해당 스크린 샷에있는 것과 동일한 열을 사용하지 않기를 바랍니다.
3 열을 원한다고 가정하고 그 데이터를 변경할 수 있습니다.
android:orientation="horizontal
이있는 루트에서 costum ListView과 LinearLayout
을 사용할 수 있습니다. 그런 다음 각 요소를 삽입하면 android:layout_width="0dp"
과 함께 layout_weight="1"
을 사용해야합니다. 이 조합을 통해 ListView
행의 각 요소는 동일한 너비를 가지므로 일부 선택 사항입니다.
같은 것을 보인다해야 귀하의 costum 목록 행 :
<LinearLayout
android:layout_width="fill_parent"
...
android:orientation="horizontal" >
<TextView
android:layout_width="0dp"
...
android:layout_weight="1" />
...
버튼을 처리하는 방법을 당신이 당신의 costum 목록보기에 어댑터 내부의 getView
방법으로 그것을 얻을 때 버튼에 setOnClickListener
을 할 필요가 클릭 .
그러면 단추와 ListView를 클릭하는 데 문제가있을 것입니다. 이를 해결하는 일반적인 방법은 버튼을 android:focusable="false"
으로 xml에 선언하여 선언하는 것입니다. 그러나 한 번에 한 가지) 때문에 주석의
EDIT (:
당신이 체크 박스가/비활성화 당신이 어떤 일을 할 필요가 버튼을 사용하려면 : /이 버튼)을 가능하게하지 않도록 체크 박스를 추가 귀하의 getView
귀하의 costum ListView의 어댑터에.
당신은 필요에 :
- 같은 것을 사용하여 확인란을 받기 다음 인플레이터 당신이의 getView에 정의 된 하나이며 checkboxid 당신이 당신의 XML 행에 정의 된 ID입니다
CheckBox myCheckBox = (CheckBox) inflater.findViewById(R.id.checkboxid)
.
- 은 체크 박스 수신기에서에서 액세스 가능으로 버튼을 저장 :
myCheckBox.setTag(button)
버튼을 활성화/비활성화 할 버튼 그리고 당신은 그에게 당신이
- 이 체크 박스에
setOnCheckedChangeListener
설정 myCheckBox을 가지고 같은 방법으로 얻을 수있는 당신 체크 상자의 상태에 따라 버튼의 가시성을 변경하십시오.
마지막 총알이 같은 것을 소리를해야합니다
myCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Button myButton = (Button) buttonView.getTag();
if (isChecked)
myButton.setVisibility(View.VISIBLE);
else
// Use GONE if you want to get that space for other views
myButton.setVisibility(View.GONE);
}
});
당신은이 3 개의 행만 있거나 증가 할 것입니다. 한 가지 더 확장 버튼을 만들면 더 많은보기가 표시됩니다 ... –
사용자가 도움을 원하면 질문을 수정하고 개선하십시오. 그 두 이미지는 무엇입니까? (당신이 원하는 것처럼 전체 ** 레이아웃의 스케치를 제공하면 더 좋습니다.) '버튼'클릭 처리? 어디에? 클릭 이벤트에서 무엇을하고 싶습니까? 등등 – Luksprog