我正在開發一個android的小應用程序。我使用帶有TextView和CheckBox的ListView。
我已經可以處理CkeckBox勾號。此外,我想讓ListView的整行可點擊,但我找不到任何方法來實現這一點。 我已經試圖使ListView的點擊有:使整個ListView行可點擊
android:clickable="true"
而且我也試了一下,此代碼爲ListView:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(null,"Clicked",Toast.LENGTH_LONG
}
});
這是我爲ListView代碼:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="de.matthias.lolchampionowner.app.ChampionActivity">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/championListView"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true" />
</RelativeLayout>
像WhatsApp一樣。通過Android Studio,我可以發現這也是一個ListView,但它的代碼太混亂,無法從中獲得任何東西。
這是一張圖片:WhatsApp ListView
我不知道如何實現它。我appeciate任何幫助。
這裏是NKN答案:
u必須重寫getView方法。這裏是我的代碼,我可以處理來自ListView的點擊和對CheckBox diveded:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null) {
convertView = inflater.inflate(R.layout.row_name_check, null);
holder = new ViewHolder();
holder.textView = (TextView) convertView.findViewById(R.id.textViewRow);
holder.checkBox = (CheckBox) convertView.findViewById(R.id.checkBoxRow);
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
final ChampionActivity.EachRow row = this.getItem(position);
row.checked = ItemStorage.getChampSkinOwned(row.text);
holder.textView.setText(row.text);
holder.checkBox.setChecked(row.checked);
holder.checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(((CheckBox)v).isChecked()) {
ItemStorage.setChampSkinOwned(row.text, true);
} else {
ItemStorage.setChampSkinOwned(row.text, false);
}
}
});
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("onClick", row.text + " clicked");
//Toast.makeText(null,"Clicked",Toast.LENGTH_LONG);
}
});
return convertView;
}
大畫面,或許還有一點更黑在這裏和那裏,這是完美的; - ) – Ridcully
哈哈是的。但我不希望整個互聯網看到所有的數字:)但我想你知道我想用它顯示 – cptKopernikus
setOnItemClickListener()應該做你除了。適合我... – shkschneider