체크 박스가있는 Android ListView 및 모든 클릭 가능
중복 가능성 :
Android : 데이터베이스의 데이터를 ListView의 CheckBox에 바인딩 하시겠습니까?
다음 레이아웃을 가진 항목과 함께 ListView를 사용하고 싶습니다.
-------------------------
[CB] TV TV
-------------------------
CB는 체크 박스이고 TV는 Textview입니다.
이제 ListView에서 클릭 가능한 항목을 가질 수없는 곳을 읽었습니다. 일부가 있으면 ListItems를 클릭 할 수 없습니다. 하지만 GoogleMail 앱을 보면 가능합니다. 확인란을 사용하여 여러 메시지를 표시 한 다음 해당 작업을 선택하거나 ListItem을 클릭 (또는 dpad로 스크롤)하여 다른 화면으로 이동할 수 있습니다. 누군가 이것이 어떻게 가능한지 코드 / 예제를 가지고 있습니까?
XML 레이아웃에서 CheckBox
로 설정하십시오 focusable="false"
. 그렇지 않으면 목록보기에서 클릭 이벤트를 훔칩니다.
물론 이렇게 CheckBox
하면 목록 항목이 대신 클릭되면을 선택 / 선택 취소로 표시하는 것을 수동으로 처리해야 CheckBox
하지만 어쨌든 원할 것입니다.
목록보기 어댑터를 "simple_list_item_multiple_choice"로 설정합니다.
ArrayAdapter<String> adapter;
List<String> values; // put values in this
//Put in listview
adapter = new ArrayAdapter<UserProfile>(
this,
android.R.layout.simple_list_item_multiple_choice,
values);
setListAdapter(adapter);
holder.checkbox.setTag(row_id);
과
holder.checkbox.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
CheckBox c = (CheckBox) v;
int row_id = (Integer) v.getTag();
checkboxes.put(row_id, c.isChecked());
}
});
이 코드는 내 proyect에서 작동하며 listview 항목과 확인란을 선택할 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<!-- Single List Item Design -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true" >
<TextView
android:id="@+id/label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4" />
<CheckBox
android:id="@+id/check"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:text="" >
</CheckBox>
</LinearLayout>
아래 코드가 도움이 될 것입니다.
public class DeckListAdapter extends BaseAdapter{
private LayoutInflater mInflater;
ArrayList<String> teams=new ArrayList<String>();
ArrayList<Integer> teamcolor=new ArrayList<Integer>();
public DeckListAdapter(Context context) {
// Cache the LayoutInflate to avoid asking for a new one each time.
mInflater = LayoutInflater.from(context);
teams.add("Upload");
teams.add("Download");
teams.add("Device Browser");
teams.add("FTP Browser");
teams.add("Options");
teamcolor.add(Color.WHITE);
teamcolor.add(Color.LTGRAY);
teamcolor.add(Color.WHITE);
teamcolor.add(Color.LTGRAY);
teamcolor.add(Color.WHITE);
}
public int getCount() {
return teams.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.decklist, null);
holder = new ViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.deckarrow);
holder.text = (TextView) convertView.findViewById(R.id.textname);
.......here you can use holder.text.setonclicklistner(new View.onclick.
for each textview
System.out.println(holder.text.getText().toString());
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(teams.get(position));
if(position<teamcolor.size())
holder.text.setBackgroundColor(teamcolor.get(position));
holder.icon.setImageResource(R.drawable.arraocha);
return convertView;
}
class ViewHolder {
ImageView icon;
TextView text;
}
}
도움이 되었기를 바랍니다.
참조 URL : https://stackoverflow.com/questions/5417339/android-listview-with-checkbox-and-all-clickable
'programing' 카테고리의 다른 글
C # 캐스트 전체 어레이? (0) | 2021.01.17 |
---|---|
Python의`urllib2` : Wikipedia 페이지를`urlopen` 할 때 403 오류가 발생하는 이유는 무엇입니까? (0) | 2021.01.17 |
ggplot2 scale_brewer의 역순 (0) | 2021.01.17 |
UIViewController에 포함 된 UITableView에서 정적 셀을 시각적으로 만들고 사용하는 방법 (0) | 2021.01.17 |
redis cli를 사용하여 명령 배치 실행 (0) | 2021.01.17 |