2011-12-05 2 views
1

내 PreferenceActivity에서 ListPreference를 만들고 싶습니다.라디오 버튼이없는 ListPreferences?

ListPreference를 클릭하면 listview가있는 대화 상자가 나타납니다. 목록보기의 각 행에는 텍스트 필드와 라디오 버튼이 있습니다.

이 라디오 버튼을 원하지 않고 목록 항목을 클릭해도 브라우저를 여는 의도를 실행하고 싶습니까? 그것에 대해 어떻게 생각해?

만약 내가 DialogPreference를 확장했다면 onclicks를 다루는 방법은? onListClickListener처럼 작동합니까?

또는 내가 무시하는 데 필요한 기능이 무엇 ListPreference 확장 할 경우

?

+0

아직 코드가 없습니다. 나는 어디서부터 시작해야할지 모르겠다. ( – Enigma

+0

당신은 라디오 버튼을 원하지 않는다고 언급하지만 정확히 무엇을 원하니? – THelper

답변

4

환경 설정을 사용자 정의 할 때 가능합니다. 환경 설정 만 사용하는 경우 버튼처럼 작동합니다. 나중에 원하는대로 구현해야합니다. 다음 예제는 요구 사항을 보여줍니다. 환경 설정을 클릭하면, 라디오 버튼없이 목록 대화 상자를 보여줍니다. 그러나 공유 환경 설정에 데이터를 저장하도록 구현되지 않았습니다. 그렇게하고 싶다면 직접 구현해야합니다. 여기에 일부 코드를 게시하십시오.

prefereces=findPreference("intent"); 
     // prefereces.setIntent(new Intent(Intent.ACTION_VIEW,Uri.parse("https://market.android.com/"))); 
    // prefereces.setIntent(new Intent(getApplicationContext(), DynamicPreference.class)); 

     prefereces.setOnPreferenceClickListener(new OnPreferenceClickListener() { 

     @Override 
     public boolean onPreferenceClick(Preference preference) { 
      // TODO Auto-generated method stub 

      createListPreferenceDialog(); 
      return true; 
     } 


    }); 


    } 
    private void createListPreferenceDialog() 
    { 

     Dialog dialog; 
     final CharSequence str[]={"Android","Black Berry","Symbian"}; 
     AlertDialog.Builder b=new AlertDialog.Builder(PreferenceActivities1Activity.this); 
     b.setTitle("Mobile OS"); 

     b.setItems(str, new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int position) 
      { 

       showToast("I am Clicked "+str[position]); 
//    switch (position) 
//    { 
//    case 0: 
//     showToast("I am Clicked "+str[position]); 
//     break; 
// 
//    default: 
//     break; 
//    } 

      } 
     }); 

     dialog=b.create(); 
     dialog.show(); 

    } 
    public void showToast(String msg) 
    { 
     Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); 
    }