其他分享
首页 > 其他分享> > 没有任何单选按钮的ListPreferences?

没有任何单选按钮的ListPreferences?

作者:互联网

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

单击ListPreference时,我得到一个带有listview的对话框.列表视图中的每一行都有一个文本字段和一个单选按钮.

我不希望该单选按钮,也不希望在单击列表项时触发要打开浏览器的意图?任何想法如何去做?

如果我扩展DialogPreference,那么如何处理onClicks?像onListClickListener一样可以吗?

要么

如果我扩展ListPreference,我需要重写哪些功能?

解决方法:

当您自定义首选项时,这是可能的.当您仅使用首选项时,它就像一个按钮.后来您必须实现所需的任何东西.下面的示例仅作为您的要求.当您单击首选项时,它会显示列表对话框.没有单选按钮.但是我没有实现将数据存储在“共享”首选项中.如果要执行此操作,则必须实现自己的数据.我只是在此处发布一些代码.

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,android-preferences
来源: https://codeday.me/bug/20191013/1906225.html