0

네트워크 목록에 대한 Android OS의 wifi-settings (예 : here, 이미지 아래쪽 영역)와 비슷한 PreferenceActivity에서 listView를 표시하려고합니다. 그러나 이러한 일은 유용하지 않으므로 Preference를 확장하는 새로운 클래스를 만들었고 onCreateView에서 반환 된 것은 ListView 인스턴스 일뿐입니다.android - PreferenceActivity에서 listView 표시

그것이 효과적 이었지만, listView는 layoutParams에 어떤 일을 하든지 상관없이 하나의 항목에 대한 일정한 크기를 가지고 있습니다. 심지어 onCreateView 내부에 어댑터를 설정해도 정확히 같은 크기입니다.

뿐만 아니라 목록보기 안에는 여러 항목이 있음에도 불구하고 listView를 스크롤 할 수 없습니다.

본래의 느낌을주기 위해 모든 기본 설정과 동일한 텍스트 크기 표준을 사용하고 싶습니다.

누구나 잘 작동하도록하려면 어떻게해야할까요?

btw, 앱은 안드로이드 API 10 이상 (최소 10)에서 작동해야합니다.

답변

0

확인, 대답은 당신이 (당신이 원하는 뷰를 포함) 원하는대로 레이아웃 된 setContentView를 사용하는 것, 환경 설정을 위해 거기 목록보기를 추가하고,이 목록보기 위해, 바인드하고는, setAdapter를 호출 .

나는 이것처럼, 다른 솔루션에보고하여이 솔루션을 발견했습니다 http://kmansoft.com/2011/08/29/implementing-long-clickable-preferences/

2

동일한 모양/동작을 사용하려는 경우 일반 PreferenceActivity 구현 상태를 유지하고 새로운 preference items을 코드 (결국 사용자 정의 렌더러 포함)에서 동적으로 "목록"에 추가해야합니다.

같은 디스플레이의 기본 구현은 다음과 같습니다

/** 
* This variable stands for the items with which you want to populate the list 
*/ 
final HashMap<String, String> networks = new HashMap<String, String>(); 

final PreferenceCategory cat = new PreferenceCategory(getApplicationContext()); 
cat.setTitle(R.string.wifinetworks); // holding "Wi-fi networks" 
for (final String networkTitle : networks.keySet()) 
{ 
    final Preference pref = new Preference(getApplicationContext()); 
    pref.setTitle(networkTitle); 
    pref.setSummary(networks.get(networkTitle)); 
    cat.addPreference(pref); 
} 

편집 : 기존 PreferenceActivity에 사용자 정의 구성 요소를 추가하려면, 당신은 addContentView 방법으로 시도를 제공해야합니다. onCreate 내에서 :

final LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, 
     LayoutParams.WRAP_CONTENT); 
addContentView(buttonBar, params); 
+0

은 그래서 당신은 내가 전혀 목록보기를 사용하고, 대신 단순히 심지어 런타임에 항목을 추가 및 제거되지한다는 의미는? 스크롤 기능은 어떻습니까? scrollView를 추가하면 "list"의 크기가 축소되어 같은 크기로 유지됩니다 ... 스크롤도 작동하지 않습니다. –

+0

'PreferenceActivity'의 화면에는 이미 스크롤 기능이 있으므로 사용자가 다른 것을 추가 할 필요가 없습니다. – rekaszeru

+0

아마도 기본 액티비티 내에서 preferencesActivity와 같은 기본 스타일을 사용할 수 있습니까? 나는 본래의 느낌을 가질 필요가 있지만, 어떤 것은 거기에 없다. 예를 들어 listView 아래에 단추가 있어야하는 경우 모든 항목이 같은 목록에 있어야한다고 말하고 목록을 아래로 전체 스크롤해야한다고 말하기 때문에 여기서는 사용할 수 없습니다. –