Android:将OnClick处理程序添加到自定义首选项布局

孙彼得

我在一些未知的领域。不幸的是,我不完全了解Android的结构。我正在尝试为用户创建一种使用首选项布局添加联系人的方法。我让我的应用添加了联系人,但是我正在设法从列表中删除联系人。我为首选项对象创建了一个自定义布局。

contact_pref_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
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 android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:layout_marginLeft="15dip"
    android:layout_marginRight="6dip" android:layout_marginTop="6dip"
    android:layout_marginBottom="6dip" android:layout_weight="1">
    <TextView android:id="@+android:id/title"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:singleLine="true" android:textAppearance="?android:attr/textAppearanceLarge"
        android:ellipsize="marquee" android:fadingEdge="horizontal"
        android:textColor="#FF0000" />

    <TextView android:id="@+android:id/summary"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_below="@android:id/title" android:layout_alignLeft="@android:id/title"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:maxLines="4" />
    <ImageButton android:id="@+id/btnDelete"
        android:layout_width="32dp" 
        android:layout_height="32dp"
        android:layout_alignParentRight="true"
        android:src="@drawable/trash_can"
        />
<!-- Preference should place its actual preference widget here. -->
<LinearLayout android:id="@+android:id/widget_frame"
    android:layout_width="wrap_content" android:layout_height="match_parent"
    android:gravity="center_vertical" android:orientation="vertical" />
    </RelativeLayout>
</LinearLayout>

我会在添加联系人的所有内容中动态创建首选项对象。

添加联系人功能:

   private void addContact(String contactName, String contactPhone)
    {
        Log.i(TAG,"in addContact Function");

        Toast.makeText(this, contactName + "'s phone number found: " + contactPhone , Toast.LENGTH_SHORT).show();

        PreferenceCategory targetCategory = (PreferenceCategory)findPreference("contact_category");

        Preference newContact = new Preference(this);
        newContact.setKey("contact123");
        newContact.setTitle(contactName);
        newContact.setSummary(contactPhone);
        newContact.setLayoutResource(R.layout.contact_pref_layout);


        Log.i(TAG,"Add new Contact");
        targetCategory.addPreference(newContact);

    }

我不确定在何处或如何添加onClickListener来删除ImageButton。我什至不确定如何删除首选项对象。有什么建议?

编辑2014年1月6日的LOGCAT

01-26 08:22:36.846: E/AndroidRuntime(18987): FATAL EXCEPTION: main
01-26 08:22:36.846: E/AndroidRuntime(18987): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.simpleemergencywidget/com.example.simpleemergencywidget.ContactPrefActivity}: java.lang.NullPointerException
01-26 08:22:36.846: E/AndroidRuntime(18987):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2359)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at android.app.ActivityThread.access$700(ActivityThread.java:165)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1326)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at android.os.Looper.loop(Looper.java:137)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at android.app.ActivityThread.main(ActivityThread.java:5455)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at java.lang.reflect.Method.invokeNative(Native Method)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at java.lang.reflect.Method.invoke(Method.java:525)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at dalvik.system.NativeStart.main(Native Method)
01-26 08:22:36.846: E/AndroidRuntime(18987): Caused by: java.lang.NullPointerException
01-26 08:22:36.846: E/AndroidRuntime(18987):    at com.example.simpleemergencywidget.ContactPrefActivity.onCreate(ContactPrefActivity.java:36)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at android.app.Activity.performCreate(Activity.java:5372)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
01-26 08:22:36.846: E/AndroidRuntime(18987):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267)
01-26 08:22:36.846: E/AndroidRuntime(18987):    ... 11 more

创建contactpage活动时出现此错误。

孙彼得

我最终使用添加

android:onClick="deleteContact"

到布局,并添加了deleteContact函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android:将OnClick处理程序添加到自定义首选项布局

来自分类Dev

将自定义数组添加到android中的共享首选项

来自分类Dev

Android设置自定义首选项布局

来自分类Dev

首选项-将值添加到终端列表首选项android

来自分类Dev

将字体添加到首选项屏幕标题

来自分类Dev

Pharo将配置添加到启动首选项

来自分类Dev

将字体添加到首选项屏幕标题

来自分类Dev

将首选项添加到facebook sdk LoginButton

来自分类Dev

可以将首选项屏幕添加到“设置”应用程序吗?

来自分类Dev

将脚本添加到系统->首选项->启动应用程序

来自分类Dev

Android首选项,自定义EditTextPreference

来自分类Dev

将“更改语言”添加到 Android 首选项的所有步骤

来自分类Dev

将项目添加到自定义组件的布局

来自分类Dev

如何在res / raw文件夹中将我的应用的自定义铃声添加到铃声首选项

来自分类Dev

Android将数据添加到自定义布局和滚动视图

来自分类Dev

Android无法将子级添加到自定义布局(继承自ViewGroup)

来自分类Dev

创建模板布局文件并动态添加值以将其添加到首选项中

来自分类Dev

Android Chrome自定义标签将“复制链接”添加到选项菜单

来自分类Dev

自定义首选项中的Android自定义资源标识符

来自分类Dev

根据几个不同的首选项构建自定义布局

来自分类Dev

将自定义处理程序类添加到 JSF 自定义组件

来自分类Dev

如何处理首选项(PreferenceFragment)中自定义项目的点击事件?

来自分类Dev

如何在首选项内创建自定义对话框首选项

来自分类Dev

将更多值添加到“共享首选项”,而不是覆盖现有值

来自分类Dev

wirecloud / fiware小部件将列表添加到首选项

来自分类Dev

将IF语句添加到MulitSelectList首选项中的每个数组索引值中

来自分类Dev

将IF语句添加到MulitSelectList首选项中的每个数组索引值中

来自分类Dev

自定义首选项-按钮不可点击

来自分类Dev

自定义首选项消失后如何清理

Related 相关文章

  1. 1

    Android:将OnClick处理程序添加到自定义首选项布局

  2. 2

    将自定义数组添加到android中的共享首选项

  3. 3

    Android设置自定义首选项布局

  4. 4

    首选项-将值添加到终端列表首选项android

  5. 5

    将字体添加到首选项屏幕标题

  6. 6

    Pharo将配置添加到启动首选项

  7. 7

    将字体添加到首选项屏幕标题

  8. 8

    将首选项添加到facebook sdk LoginButton

  9. 9

    可以将首选项屏幕添加到“设置”应用程序吗?

  10. 10

    将脚本添加到系统->首选项->启动应用程序

  11. 11

    Android首选项,自定义EditTextPreference

  12. 12

    将“更改语言”添加到 Android 首选项的所有步骤

  13. 13

    将项目添加到自定义组件的布局

  14. 14

    如何在res / raw文件夹中将我的应用的自定义铃声添加到铃声首选项

  15. 15

    Android将数据添加到自定义布局和滚动视图

  16. 16

    Android无法将子级添加到自定义布局(继承自ViewGroup)

  17. 17

    创建模板布局文件并动态添加值以将其添加到首选项中

  18. 18

    Android Chrome自定义标签将“复制链接”添加到选项菜单

  19. 19

    自定义首选项中的Android自定义资源标识符

  20. 20

    根据几个不同的首选项构建自定义布局

  21. 21

    将自定义处理程序类添加到 JSF 自定义组件

  22. 22

    如何处理首选项(PreferenceFragment)中自定义项目的点击事件?

  23. 23

    如何在首选项内创建自定义对话框首选项

  24. 24

    将更多值添加到“共享首选项”,而不是覆盖现有值

  25. 25

    wirecloud / fiware小部件将列表添加到首选项

  26. 26

    将IF语句添加到MulitSelectList首选项中的每个数组索引值中

  27. 27

    将IF语句添加到MulitSelectList首选项中的每个数组索引值中

  28. 28

    自定义首选项-按钮不可点击

  29. 29

    自定义首选项消失后如何清理

热门标签

归档