标签: preference

从首选项活动启动活动会导致权限拒绝异常

我在这里遇到了一些问题.我想要做的是从PreferenceActivity中启动一个Activity.所以我的preference.xml保存了首选项布局,如下所示:

<Preference android:title="Launch Activity" >
   <intent android:action="org.momo.SOME_ACTIVITY" />
</Preference>
Run Code Online (Sandbox Code Playgroud)

清单知道我想要启动的活动..

<activity android:label="@string/app_name" android:name="SomeActivity">
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />

            <action android:name="org.momo.SOME_ACTIVITY" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

猜猜看,当我想启动它时,我得到一个安全例外(Permission Denial).我错过了什么吗?我对意图的理解仍然有点不完整,但我认为它必须以这种方式工作.

感谢您的任何帮助!

android preference android-activity

7
推荐指数
1
解决办法
6141
查看次数

以编程方式定义默认活动(当应用程序启动时)

我的应用程序由一些活动组成.

活动A是我的主菜单,带有一些图标.此活动可以根据您按哪个图标启动:活动B,C,D,E或F.

这很好,很容易,活动A是默认的.

现在,我优先选择允许用户开始他们喜欢的活动.

实际上,一些用户更愿意直接获得活动B.

我找到解决方案的唯一方法是在活动A中执行此操作此解决方案非常难看,因为活动A将始终自动启动和关闭:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    settings = PreferenceManager
            .getDefaultSharedPreferences(getBaseContext());
    final Intent intent = getIntent();
    String action = intent.getAction();

    if (Intent.ACTION_MAIN.equals(action)) {
        switch (Integer.valueOf(settings.getString("Activitypref", "1"))) {
        case 2:
            Intent i = new Intent(ActivityA.this, ActivityB.class);
            finish();
            startActivity(i);
            break;
        case 3:
            i = new Intent(ActivityA.this, ActivityC.class);
            finish();
            startActivity(i);
            break;
        case 4:
            i = new Intent(ActivityA.this, ActivityD.class);
            finish();
            startActivity(i);
            break;
        case 5:
            i = new Intent(ActivityA.this, ActivityE.class);
            finish();
            startActivity(i);
            break;
        case 6:
            i = new Intent(ActivityA.this, ActivityF.class); …
Run Code Online (Sandbox Code Playgroud)

android default preference android-activity

7
推荐指数
1
解决办法
6326
查看次数

设置首选项布局并更改其中的属性

是否可以以编程方式访问设置为首选项的布局?

这就是我所拥有的,一个非常简单的项目 - 概念验证

偏好活动:

package com.example;

import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.util.Log;
import android.view.View;

public class PreferenceExampleActivity extends PreferenceActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);

        ImageView v = (ImageView) findViewById(R.id.iconka);

    }
}
Run Code Online (Sandbox Code Playgroud)

资源XML:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:key="settings">
    <PreferenceCategory 
        android:title="Category Setting Name" 
        android:order="1" 
        android:key="Main">
        <Preference 
            android:order="1" 
            android:title="Setting" 
            android:summary="Setting1" 
            android:layout="@layout/profile_preference_row"
            android:key="profile" />
    </PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

首选项的自定义布局:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/widget_frame"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:gravity="center_vertical"
    android:paddingRight="?android:attr/scrollbarSize">



    <RelativeLayout …
Run Code Online (Sandbox Code Playgroud)

android preference preferenceactivity android-layout

7
推荐指数
2
解决办法
1万
查看次数

如果尚未设置文件名,请阅读SharedPreferences

在Android上创建PreferenceScreen时,您的应用程序会为设置创建默认的SharedPreferences文件.我想读这个名字,或者在没有指定名字的情况下获得参考.

目前我使用:

SharedPreferences prefs = ctx.getSharedPreferences("prefs", 0);
SharedPreferences.Editor ed=prefs.edit();
Run Code Online (Sandbox Code Playgroud)

但是这会返回首选项的另一个副本.当我检查/ data/data/myapk/shared_prefs中的文件夹时

我看到两个文件,一个名为prefs.xml,另一个是我的[包名] _preferences.xml(这是由PreferenceActivity创建的);

如何使用默认文件名获取共享首选项的实例,所以我不应该提及它的名称?

android preference sharedpreferences

6
推荐指数
1
解决办法
2409
查看次数

当用户在字段中编辑值时,自定义DatePicker作为首选项不会保留值

我创建了一个DatePickerPreference,即我扩展了DialogPreference并在其中创建了一个DatePicker对象并让它几乎完美地工作.当您单击上下箭头并保存所选值时,它会更改值.

但是,如果您在字段内单击并在那里键入新值,则不会保存更新的值!使用箭头时,始终调用onDateChanged()方法; 当用户进入该字段并对其进行编辑时,如果他选择另一个字段,它将仅调用onDateChanged(在这种情况下,如果他编辑最后一个字段并且只是点击OK,则将忽略最后一次编辑).我发现Eric Besette在他的TimePickerPreference上发布了类似的问题

这是我的代码:


    public class DatePickerPreference extends DialogPreference implements  
OnDateChangedListener, OnDateSetListener {

    @Override
    protected View onCreateDialogView() {
        DatePicker picker = new DatePicker(getContext());
        mDate = getPersistedLong(System.currentTimeMillis());

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(mDate);

        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int month = calendar.get(Calendar.MONTH);
        int year = calendar.get(Calendar.YEAR);

        picker.init(year, month, day, this);
        return picker;
    }

    public void onDateChanged(DatePicker view, int year, int monthOfYear,  
            int dayOfMonth) {
        mDate = (new Date(year - 1900, monthOfYear, dayOfMonth)).getTime();
    }

    public void onDateSet(DatePicker view, int year, int monthOfYear, …
Run Code Online (Sandbox Code Playgroud)

android datepicker preference

6
推荐指数
1
解决办法
6080
查看次数

Android SeekBarPreference

我目前正在尝试使用RelativeLayout的http://android-journey.blogspot.com/2010/01/for-almost-any-application-we-need-to.html教程来实现SeekBarPreference类.第一个问题是TextView preferenceText根本没有显示.第二个问题是酒吧不能像常规喜好那样滑动(比如媒体音量栏)?

public class SeekBarPreference extends Preference implements
    OnSeekBarChangeListener {

public static int maximum    = 100;
public static int interval   = 5;
private float oldValue = 25;
private TextView Indicator;

public SeekBarPreference(Context context) {
    super(context);
}

public SeekBarPreference(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public SeekBarPreference(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

@Override
protected View onCreateView(ViewGroup parent) {

    float scale = getContext().getResources().getDisplayMetrics().density;

    RelativeLayout layout = new RelativeLayout(getContext());

    RelativeLayout.LayoutParams textParams = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT, …
Run Code Online (Sandbox Code Playgroud)

android seekbar preference

6
推荐指数
1
解决办法
2万
查看次数

Android首选项标题/摘要文字样式

我有几个自定义首选项 - 一个显示当前所选颜色的样本,另一个显示缩略图.

我有一个匹配得很好的自定义布局,并且发现我可以通过使用android:textAppearance ="?android:attr/textAppearanceLarge"作为TextView的xml的一部分来使文本外观匹配.问题是,虽然这些看起来很好,但它们不一定是"官方"偏好使用的外观,因为某些设备上的颜色最终会出错.特别是我将我的应用程序移植到Nook Color,它在首选项屏幕上使用浅灰色背景和黑色文本颜色,而不是黑色背景/浅灰色文本.在这种情况下我的文字颜色保持不变,但我的布局的其余部分是相应的主题.

我真的不确定我应该做什么来让我的文字与'官方'主题相匹配.我应该使用obtainStyledAttributes并运行我的布局来设置东西吗?到目前为止我看到的使用它的教程真是令人费解,似乎必须有一个textAppearance或样式我可以在XML中设置来解决这个问题.

layout android coding-style preference

6
推荐指数
1
解决办法
1553
查看次数

更改PreferenceCategory android:title

我想知道是否有办法改变

PreferenceCategory android:title="my name"

以编程方式和/或

ListPreference android:title="my name"

编程.

android categories preference

6
推荐指数
1
解决办法
3042
查看次数

无法运行Preference Pane应用程序

我创建了一个新的Xcode Preference Pane项目,我的目标是在System Preference应用程序中运行.我对项目的构建设置进行了一次修改:

  1. 从10.7将基本SDK更改为Mac OS X 10.6(因为我想保持Snow Leopard的兼容性).

我有一个nib文件和NSPreferencePane子类,但Xcode不允许我运行应用程序(只构建它,运行选项被禁用).

我的环境规格:

  • Macbook Pro 2010
  • Mac OS X Lion(10.7)
  • Xcode 4.2

macos xcode cocoa objective-c preference

6
推荐指数
1
解决办法
1572
查看次数

文件选择器意图从首选项打开

我正在尝试学习设置UI构建,我在android文档中看到首选项可以是Intent,但我现在想知道的是,Intent是否可以返回首选项值(例如通过启动文件选择的文件名)选择活动)?

或者,如果我想在我的首选项设置中选择文件或目录名称,是否需要构建自定义首选项视图?在任何地方有任何方便的例子吗?(似乎人们会对我做很多事情).

android preference

6
推荐指数
1
解决办法
5820
查看次数