GVKun编程网logo

Android:点击了首选项按钮?(点击android后怎么操作)

23

在本文中,我们将给您介绍关于Android:点击了首选项按钮?的详细内容,并且为您解答点击android后怎么操作的相关问题,此外,我们还将为您提供关于AndroidXML文件中android:id,

在本文中,我们将给您介绍关于Android:点击了首选项按钮?的详细内容,并且为您解答点击android后怎么操作的相关问题,此外,我们还将为您提供关于Android XML文件中android:id,android:name和name标签之间的区别、android – OSMDroid:当用户点击地图时添加标记、android – 从首选项中删除图标、android – 保存首选项的知识。

本文目录一览:

Android:点击了首选项按钮?(点击android后怎么操作)

Android:点击了首选项按钮?(点击android后怎么操作)

我有一个共享首选项屏幕,带有复选框的列表首选项等.现在我想在共享首选项屏幕中添加一个按钮,当我点击它时会弹出一个对话框.我这样做,在首选项屏幕上显示按钮看起来很完美:

<Preference
        android:key="key"
        android:summary="make pop up dialog"
        android:title="dialog" />

但现在我不知道如何点击它我尝试了,我不能使用onSharedPreferenceChanged因为没有更改它只是单击的首选项.那么当点击偏好按钮时我该怎么做?谢谢您的帮助.

解决方法

首先,您的PreferenceActivity必须实现Preference.OnPreferenceClickListener.
然后,在onCreate函数调用下

findPreference(YOUR_KEY_PREF).setonPreferenceClickListener(本);

并添加此功能

@Override
public boolean onPreferenceClick(Preference preference) {
    String key = preference.getKey();
    if(key.equals(YOUR_KEY_PREF)){
        showYourDialog();
        return true;
    }
    return false;
}

在你的情况下,YOUR_KEY_PREF是“关键”

Android XML文件中android:id,android:name和name标签之间的区别

Android XML文件中android:id,android:name和name标签之间的区别

有人可以澄清 Android的XML文件中android:id,android:name和name标签的区别.他们似乎都是参考事情的方法.

例如,当我在res / values / array.xml文件中有一个字符串数组时,我使用定义的数组中的name字段进行访问,而Javadoc则将其称为“ID”.

android:id似乎只是在Views中使用?

我错过了一些东西,还是不会有简单的标签?

解决方法

不,我不相信你没有任何东西.虽然这些字段的名称不同,但我的理解是它们都用于标识/引用资源.这具体意味着GUI元素(视图)在android:id和静态资源的情况下的名字.

要进一步深入,我相信android:id属性只分配给视图和扩展视图的类.这样做可以使用findViewById从代码中以编程方式访问该视图:

Button myButton =(Button)findViewById(R.id.whatever_id_assigned_to_view)

这与诸如strings.xml或array.xml之类的资源不同,这些资源仅通过名称来标识,例如可以在strings.xml中找到的以下示例:

< string name =“string_name”>文本资源此处< / string>

并使用…访问

getResources().的getText(R.string.string_name)

我想像这是因组织原因而分开的.这样生成的Android资源文件(R.java)包含为R.id中的视图指定的ID,R.string中包含的字符串ID,R.array等中的数组ID.

android – OSMDroid:当用户点击地图时添加标记

android – OSMDroid:当用户点击地图时添加标记

我想在用户点击地图的地图上显示标记.
此外,这不应该感染双击以进行缩放和/或移动Mapview.

我正在使用osmdroid-android-4.0.jar

解决方法

查看OSMBonusPack MapEventsOverlay / MapEventsReceiver:

http://code.google.com/p/osmbonuspack/source/browse/trunk/OSMBonusPack/src/org/osmdroid/bonuspack/overlays/MapEventsOverlay.java

您创建一个MapEventsOverlay,将其添加到地图覆盖图中,然后将MapEventsReceiver传递给它,您可以在其中实现自己的singleTapUpH​​elper代码.

android – 从首选项中删除图标

android – 从首选项中删除图标

Preference myPreference;
...
Drawable originalIcon = myPreference.getIcon();
myPreference.setIcon(android.R.drawable.btn_star);
...
myPreference.setIcon(originalIcon);

上面的代码会将图标更改为首选项,然后再将其还原.

如果首选项没有图标,则首选项的文本向右移动并添加图标(getIcon返回null).为Drawable调用setIcon为null不会删除图标.如何删除图标并将首选项文本保留为原始位置.

最佳答案
好的,一种方法是定义一个可绘制的空图标,如下所示:

layer-list />

然后使用:

if (originalIcon == null) {
    myPreference.setIcon(R.drawable.my_null_icon);
}
else {
    myPreference.setIcon(originalIcon);
}

android – 保存首选项

android – 保存首选项

我是 Android编程的初学者,不幸的是我有问题:)

我在我的游戏中有方法writeSettings(),当我想通过readSettings()方法加载最后一个游戏时,我试图保存一些变量来使用它.有一些参数,如第一(第二)PlayerName,第一(第二)Playerscore等.我正在尝试使用SharedPreferences来保存它们,但是在启动程序时我得到“强制关闭”对话框.

SharedPreferences preferences = getPreferences(MODE_PRIVATE); //Global variable

    private void writeSettings() {
                SharedPreferences.Editor editor = preferences.edit();
                editor.putInt("timeSave",time);
                editor.putString("firstPlayerNameSave",firstPlayerNameTextView.getText().toString());
                editor.putString("secondplayerNameSave",secondplayerNameTextView.getText().toString());
                editor.putString("firstPlayerscoreSave",firstPlayerscoreTextView.getText().toString());
                editor.putString("secondplayerscoreSave",secondplayerscoreTextView.getText().toString());
                editor.putInt("NowPlayerSave",NowPlayer);        
                editor.commit();

        }


       private void readSettings() {
    //"time" parameter program reads in another method
                    firstPlayerNameTextView.setText(preferences.getString("firstPlayerNameSave",""));
                    secondplayerNameTextView.setText(preferences.getString("secondplayerNameSave",""));
                    firstPlayerscoreTextView.setText(preferences.getString("firstPlayerscoreSave",""));
                    secondplayerscoreTextView.setText(preferences.getString("secondplayerscoreSave",""));
                    NowPlayer = preferences.getInt("NowPlayerSave",-1);

            }

我怎么知道,问题出现在writeSettings()的第一个条目中.
但我不知道我做错了什么?

对不起我的英语不好.

UPD.

12-23 16:23:31.334: ERROR/AndroidRuntime(410): Uncaught handler: thread main exiting due to uncaught exception
12-23 16:23:31.520: ERROR/AndroidRuntime(410): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.game/com.game.Game}: java.lang.NullPointerException
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2417)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.os.Looper.loop(Looper.java:123)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.app.ActivityThread.main(ActivityThread.java:4363)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at java.lang.reflect.Method.invokeNative(Native Method)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at java.lang.reflect.Method.invoke(Method.java:521)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at dalvik.system.NativeStart.main(Native Method)
12-23 16:23:31.520: ERROR/AndroidRuntime(410): Caused by: java.lang.NullPointerException
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.content.Contextwrapper.getPackageName(Contextwrapper.java:120)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.app.Activity.getLocalClassName(Activity.java:3410)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.app.Activity.getPreferences(Activity.java:3444)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at com.game.Game.<init>(Game.java:69)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at java.lang.class.newInstanceImpl(Native Method)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at java.lang.class.newInstance(Class.java:1479)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2409)
12-23 16:23:31.520: ERROR/AndroidRuntime(410):     ... 11 more

Game.java:69是SharedPreferences preferences = getPreferences(MODE_PRIVATE);

解决方法

我是这样做的:
Editor editor = PreferenceManager.getDefaultSharedPreferences(Context).edit();
                editor.putString("firstPlayerNameSave",firstPlayerNameTextView.getText().toString());              
                editor.commit();

阅读:

firstPlayerNameTextView.setText(PreferenceManager.getDefaultSharedPreferences(Context).getString("firstPlayerNameSave",""));

关于Android:点击了首选项按钮?点击android后怎么操作的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Android XML文件中android:id,android:name和name标签之间的区别、android – OSMDroid:当用户点击地图时添加标记、android – 从首选项中删除图标、android – 保存首选项的相关信息,请在本站寻找。

本文标签: