격자보기에서 동적 확인란을 표시하려고하는데 텍스트가 표시되지 않습니다. 선택 / 선택 취소 할 때만 텍스트가 강조 표시됩니다. 내 질문이 Android CheckBox 텍스트가 표시되지 않는 것과 동일하다는 것을 알고 있습니다. 그러나 나는 그것을 해결할 방법을 찾지 못했습니다.
다음은 내 코드입니다.
활동 코드 :
try {
JSONArray JA = new JSONArray(result3);// result3 is response from
// server
JSONObject json = null;
final String[] str3 = new String[JA.length()];
for (int i = 0; i < JA.length(); i++) {
json = JA.getJSONObject(i);
str3[i] = json.getString("name");
}
ArrayAdapter<String> adp3 = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_multiple_choice, str3);
GridView gridView = (GridView) findViewById(R.id.name);
gridView.setAdapter(adp3);
} catch (Exception e) {
Log.e("Fail 3", e.toString());
}
레이아웃 XML :
<GridView android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="auto_fit"
android:choiceMode="multipleChoice"
></GridView>
ArrayAdapter를 사용하여 간단한 TextView 이외의 것을 표시하려면 하위 클래스를 지정하십시오.
그런 다음 사용자 지정 어댑터의 GetView () 메서드에서보기를 초기화 할 수 있습니다.
다음은 ArrayAdapter의 기본 서브 클래 싱의 예입니다.
public class CustomAdapter extends ArrayAdapter<String>
{
private LayoutInflater inflater;
private int resourceId;
private List<String> data;
public CustomAdapter(Context context, int resourceId, List<String> data)
{
super(context, resourceId, data);
inflater = LayoutInflater.from(context);
this.resourceId = resourceId;
this.data = data;
}
@Override
public View getView(int position, View view, ViewGroup parent)
{
if (view == null)
view = inflater.inflate(resourceId, null);
String data_item = (String) ((ListView) parent).getItemAtPosition(position);
CheckBox checkBox = ((CheckBox) view.findViewById(R.id.check_box));
// Do your thing
return view;
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다