好了,所以這個答案是根據「長時間的討論」我們有
讓我們假設你想一個 - 再使用 - 視圖列表中,你編寫了一個名爲LIST_ITEM一個單獨的XML佈局文件,如下:
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/checkbox"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text_view"/>
所以現在讓我們假設你在活動或片段或任何你想要託管您的看法,現在我必須指出,這只是一個例子,通常一個列表視圖是你需要什麼這種情況下,但我又很少有關於你的應用程序的細節,所以我要保持簡單
假設你有一個垂直的線性佈局,要將這些「行」添加到它,每一行代表自定義視圖
LinearLayout layout = findViewById(R.id.layout);
LayoutInflater inflater = LayoutInflater.from(this); // This inflater is responsible of creating instances of your view
View myView = inflater.inflate(R.layout.list_item, layout, false); // This view objects is the view you made in your xml file
CheckBox checkBox = (CheckBox) myView.findViewById(R.id.checkbox);
TextView textView = (TextView) myView.findViewById(R.id.text_view);
checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//if checkbox is checked enable textview for example
// here you have a reference to all the views you just created
// Weather you want to save them in a class together that's up to you and your app's logic
}
});
layout.addView((myView));
如果列表可能超過您可能希望在屏幕高度的一個將您的線性佈局封裝在滾動視圖中。
順便說一句:ListView只是一個簡單的方法,通過定義你想要每行顯示的方式來自動完成這個操作,當然它會爲你管理你的視圖並在屏幕顯示時回收它們,但我只想指出出了這個概念。
希望這有助於你
讓我得到這個直,當你點擊一個複選框,應該增加一個項目到另一個陣列,是什麼呢?串?它是獨特的嗎?在你的問題中,你說過如何找到班級,你在這裏的「班級」是什麼意思? –
每個複選框都是ChecklistItem類的成員。該類有幾個其他屬性,我需要訪問一旦複選框對象已被點擊。例如,如果單擊ChecklistItem.checkbox,我想要訪問該ChecklistItem的其他屬性。 – Brejuro
您是從代碼還是XML初始化您的複選框,然後將它們分配給此類實例?如果你發佈了,你最好如何鏈接它們 –