android - 没有任何单选按钮的 ListPreferences?

标签 android android-preferences

我想在我的 PreferenceActivity 中创建一个 ListPreference。

单击 ListPreference 时,我会看到一个带有 ListView 的对话框。 ListView 中的每一行都有一个文本字段和一个单选按钮。

我不想要这个单选按钮和点击列表项,我想触发一个打开浏览器的 Intent ?知道如何去做吗?

如果我扩展 DialogPreference 那么如何处理 onClicks?像 onListClickListener 会起作用吗?

如果我扩展 ListPreference,我需要覆盖哪些功能?

最佳答案

这在您自定义首选项时是可能的。当您仅使用 Preference 时,它​​就像一个按钮。稍后您必须实现任何您想要的。下面的示例仅显示为您的要求。当您单击首选项时,它显示没有单选按钮的列表对话框。但我没有实现将数据存储在共享首选项中。如果你想这样做,你必须实现你自己的。我只是在这里发布一些代码。

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();
    }

关于android - 没有任何单选按钮的 ListPreferences?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8382097/

相关文章:

android - 如何在 Compose 中创建循环(无尽)Lazycolumn/LazyRow

java - 用行填充矩阵

java - 使用 ScheduledThreadPoolExecutor 每秒更新一次 TextView

android - 尝试为 EditTextPreference 创建一个确认对话框

android - 自定义铃声首选项的铃声列表

android - 如何使用 appium 在 android 上自动化浏览器?

android - ViewModel 中的 Kotlin Dagger 字段注入(inject)引发 Dagger/Binding 异常

java - 首选项管理器问题

android - 工具栏箭头在 NavigationDrawer 的 PreferenceFragment 中不起作用

android - onPreferenceClick 监听器不工作/onPreferenceClick 没有被调用