내부에 ArrayAdapter
이라는 다소 간단한 대화 상자가 있습니다. 나는이 대화 상자를 표시 할 때AlertDialog 안의 Android 스위치 위젯, 썸 이미지 표시 안함 (켜기/끄기)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dp">
<TextView
android:id="@+id/txt_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_toStartOf="@+id/calendar_selection_switch"
android:ellipsize="end"
android:text="test test"
android:textColor="@color/black"
android:textSize="20sp" />
<Switch
android:id="@id/calendar_selection_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_gravity="end|center_vertical"
android:layout_marginStart="10dp"
android:minHeight="40dp"
android:minWidth="80dp" />
</RelativeLayout>
, 이것은 내가 무엇을 얻을 : 어댑터는 다음과 같은 레이아웃을 팽창
공지 사항 작은 글자와 "OFF" "의"단어. 여기에 사용자 정의 그래픽이나 클래스는 없으며 바로 사용할 수 있습니다.
내가 이것을 Activity
에서 할 때 나는 그것을 얻지 못합니다. 대신 내가 원하는 정확히 무엇이다, 정상적인 엄지 손가락의 이미지를 얻을 :
를 내가 어떤 차이가되지 않습니다 스위치의 크기를 증가하더라도. 목록의 행을 더 크게 만듭니다. CalendarListAdapter
간단한 ArrayAdapter
입니다
AlertDialog.Builder builderSingle = new AlertDialog.Builder(this);
builderSingle.setTitle(R.string.cal_title);
builderSingle.setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
final CalendarListAdapter cla = new CalendarListAdapter(this, calendarList, null);
builderSingle.setAdapter(cla, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
cla.toggleSelect(which);
}
});
builderSingle.setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (saveCalendars(cla)) {
dialog.dismiss();
}
}
});
AlertDialog dialog = builderSingle.create();
dialog.show();
:
public class CalendarListAdapter extends ArrayAdapter<Calendar> {
이 클래스의 Activity
버전과 AlertDialog
버전 사이에 차이가 있지만 없습니다 여기
나는 당황합니다. 내가 여기서하는 일은별로 복잡하지 않습니다. 도와주세요.
글쎄, 나는 이것이 내가 묻고있는 질문에 대한 대답이라고 생각하지 않는다. 그렇다면 AlertDialog 내부에있을 때와 Activity 내부에있을 때 스위치의 모양이 다른 이유는 무엇입니까? – Emmanuel
다른 방법이 없다면이 방법을 사용할 수 있습니다. – Emmanuel
@Emmanuel은'AlertDialog'의'support library' 버전을 사용하고 있습니까?나는 그것이 도서관에있는'드로어 블 (drawable) '부패로 인한 것이라고 생각한다. –