Создать всплывающее окно Dialog-link для ссылки на текстовое сообщение HandcentSMS - PullRequest
1 голос
/ 17 марта 2012

Я нахожусь в процессе изменения приложения тестового сообщения, и одна из функций, которые я хотел бы добавить к нему, заключается в том, что при получении текстового сообщения появляется диалоговое окно некоторого вида с текстовые сообщения и возможность быстро ответить на них, и все это без необходимости заходить в реальное приложение. Взяв HandcentSMS в качестве примера, вот о чем я говорю:

Quick Text reply

Есть какие-нибудь идеи, как это сделать, или кто-нибудь может указать мне правильное направление, чтобы начать это?

Ответы [ 2 ]

5 голосов
/ 19 июня 2012

Вы можете выполнить упражнение и оформить его в соответствии с пользовательским стилем, который должен наследовать Theme.Dialog. Пример стиля:

<style name="Theme.MyDialog" parent="android:style/Theme.Dialog">
        <item name="android:windowBackground">@android:drawable/alert_light_frame</item>
        <item name="android:textColorPrimary">@android:color/black</item>
        <item name="android:textColor">@android:color/black</item>            
        <item name="android:overScrollMode">never</item>
        <item name="android:windowNoTitle">true</item>
</style>

Самое важное - правильно подготовить XML-макет занятия.Я предлагаю WRAP_CONTENT для всего по вертикали и FILL_PARENT по горизонтали.

Пример макета xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="280dp"
    android:orientation="vertical">
    <LinearLayout
        android:id="@+id/frg_alert_title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:id="@android:id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/topbar_logo"
            android:drawablePadding="10dp"
            android:gravity="center_vertical"
            android:padding="10dp"
            android:text="Title"/>
        <View
            android:layout_width="fill_parent"
            android:layout_height="2dp"
            android:background="@android:drawable/divider_horizontal_bright"/>
    </LinearLayout>
    <FrameLayout
        android:id="@+id/customPanel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:visibility="gone">
        <FrameLayout
            android:id="@+id/custom"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
    </FrameLayout>
    <ScrollView
        android:id="@+id/messagePanel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:padding="10dp">
        <TextView
            android:id="@android:id/message"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Some text"/>
    </ScrollView>
    <View
        android:layout_width="fill_parent"
        android:layout_height="2dp"
        android:background="@android:drawable/divider_horizontal_bright"/>
    <LinearLayout
        android:id="@+id/frg_alert_three_buttons"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:padding="5dp"
        android:visibility="gone"
        android:weightSum="3">
        <Button
            android:id="@+id/button_positive"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:layout_weight="1"
            android:maxLines="2"
            android:minLines="2"
            android:text="Button"/>
        <Button
            android:id="@+id/button_neutral"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:maxLines="2"
            android:text="Button"/>
        <Button
            android:id="@+id/button_negative"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_marginLeft="5dp"
            android:layout_weight="1"
            android:maxLines="2"
            android:text="Button"/>
    </LinearLayout>
    <LinearLayout
        android:id="@+id/frg_alert_two_buttons"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:padding="@dimen/screenPadding"
        android:weightSum="2">
        <Button
            android:id="@+id/button_positive"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:maxLines="2"
            android:minLines="2"
            android:text="Button"/>
        <Button
            android:id="@+id/button_negative"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_weight="1"
            android:maxLines="2"
            android:minLines="2"
            android:text="Button"/>
    </LinearLayout>
</LinearLayout>
3 голосов
/ 24 июня 2012

для создания этого интерфейса просто создайте действие с прозрачным фоном как:

Шаг 1: добавьте res \ values ​​\ style.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Smspopuptheme" parent="android:style/Theme.Translucent">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:background">@android:color/transparent</item>
</style>  
</resources>

Шаг 2: добавить тему в AndroidManifest.xml для действия, которое вы хотите показать с сообщением в виде:

<activity
    android:label="@string/app_name"
    android:theme="@style/Theme.D1NoTitleDim"
    android:name=".SmspopuptestActivity" >
    <intent-filter >
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

Шаг 3: В наборе SmspopuptestActivity.java FEATURE_NO_TITLE до setContentView как:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    //Remove notification bar
    //this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.main);

Шаг 4: Ваш макет Activity выглядит следующим образом: res/layout/main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#55000000"
    android:gravity="center"
    android:orientation="horizontal" >
    <LinearLayout
        android:id="@+id/frg_alert_buttons"
        android:layout_width="fill_parent"
        android:layout_height="200dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:background="@android:color/darker_gray"
        android:gravity="center"
        android:padding="5dp"
        android:layout_centerInParent="true"
        android:weightSum="3">
    </LinearLayout>
</LinearLayout>

добавьте элементы макета в frg_alert_buttonsлюбит кнопки, текстовые просмотры, изображения и редактирование в соответствии с вашими потребностями.

Запустите SmspopuptestActivity.java Активность при получении нового SMS.

Некоторые полезные ресурсы:

android-listen-for-входящие-sms-сообщения

НЕКОТОРЫЙ КОД ИСТОЧНИКА ДЛЯ SMSPOPUP В ANDROID:

droid-notify

android-smspopup

показывает

smspopup-для-андроид

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...