1. 程式人生 > >Android中activity以dialog的形式出現

Android中activity以dialog的形式出現

activity變身為dialog可以實現多功能的dialog,閒話少說直接上程式碼!

MainActivity.class

/**
 * Activity偽裝成的Dialog需要繼承Activity
 * 彈窗Activity需要新增主題Theme
 */
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public
void start(View view) { startActivity(new Intent(MainActivity.this, DialogActivity.class)); } }

activity_mian.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height
="match_parent" tools:context="jpceshi.jiaxiao.com.dialogactivity.MainActivity">
<Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="start" android:text="跳轉" /> </LinearLayout>

跳轉後出現的dialog樣式

DialogActivity .class

/**
在edittext中輸入內容後點擊button會將內容直接顯示到textView中。
*/
public class DialogActivity extends Activity {
    private EditText mEditText;
    private Button mButton;
    private TextView mTextView;
    private String str;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
        initView();
    }

    private void initView() {
        mEditText = (EditText) findViewById(R.id.edtext);
        mTextView = (TextView) findViewById(R.id.tvshow);
        mEditText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                str = s.toString();
            }
        });
    }

    public void addText(View view) {
        if (str != null) {
            mTextView.setText(str);
        } else {
            mTextView.setText("null");
        }
    }
}

activity_dialog.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:orientation="vertical"
    tools:context="jpceshi.jiaxiao.com.dialogactivity.activity.DialogActivity">

    <EditText
        android:id="@+id/edtext"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:drawable/editbox_background"
        android:gravity="center"
        android:hint="請輸入"
        android:textColor="@android:color/black"
        android:textColorHint="@android:color/holo_blue_light" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:drawable/button_onoff_indicator_on"
        android:onClick="addText"
        android:text="新增" />

    <TextView
        android:id="@+id/tvshow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textColor="@android:color/black" />
</LinearLayout>

注:
最重要的一步是:在AndroidManifest.xml檔案中給需要顯示成dialog樣式的
Activity新增 android:theme=”@android:style/Theme.Dialog”(系統自帶 的樣式,也可以自定義樣式)

相關推薦

Androidactivitydialog形式出現

activity變身為dialog可以實現多功能的dialog,閒話少說直接上程式碼! MainActivity.class /** * Activity偽裝成的Dialog需要繼承Activit

AndroidGridView表格形式顯示多張圖片(仿桌面)

  GridView可以理解為顯示多列的ListView,這次就利用GridView做一個仿桌面的案例。GridView和ListView的使用相同,都基本使用以下三步走:設定資料來源,設定介面卡,

Dialog形式顯示Activity

<activity android:name=".ActivityJumpExample"      android:label="hello"  android:theme="@android:style/Theme.Dialog"></activit

AndroidActivity被系統會收前頁面信息保存

prot 判斷 edi 1.5 protected 是否為空 信息保存 android and 1、重寫onSaveInstanceState方法 protected void onSaveInstanceState(Bundle outState) { super

c語言 將記憶體資料二進位制形式寫入檔案 檔案的資料表現形式

最近有在寫關於將記憶體中的資料寫入檔案的程式,當程式執行後,卻發現檔案中的位元組資料有些難以理解。思考後發現了其中的道理。 程式碼如下: #include<stdio.h> #include<stdlib.h> struct BlockInfo { bool is

Androidactivity和xml的第一個專案

我們使用的手機不光是隻用到一個應用程式,比如在淘寶介面要付款的時候可能會啟動微信付款等,這就相當於在淘寶的Activity中啟動了微信的Activity。還比如說當我們註冊一個網站是,可能會給自己傳送一條簡訊作為驗證,這就是在當前的Activity中啟動了簡訊的Activity。之前對比的MVC設

androidActivity生命週期的詳細過程分析

android中Activity生命週期的詳細過程分析 Activity是安卓中相當重要的一個元件,理解它有利於我們後期更好的進行相關的開發,接下來我將演示一個demo來詳細講述Activity的生命週期過程。 首先寫兩個佈局檔案ks.xml和ks1.xml,用來實現兩個介面的跳轉,上面

Android自定義Dialog樣式

public class MyMiddleDialog extends Dialog { private Context context; public MyMiddleDialog(Context context) { sup

AndroidActivity啟動過程探究

首先追溯到Activity的啟動,隨便啟動一個自己寫的demo專案,使用DDMS進行debug標記,然後在Debug中把主執行緒暫停,可以看到呼叫棧。如下圖所示: 於是我們先看android.app.ActivityThread的main()方法。 android.a

AndroidActivity的啟動模式(LaunchMode)和使用場景

一、為什麼需要啟動模式 在Android開發中,我們都知道,在預設的情況下,如果我們啟動的是同一個Activity的話,系統會建立多個例項並把它們一一放入任務棧中。當我們點選返回(back)鍵,這些Activity例項又將從任務棧中一一移除,遵循的原則是“

AndroidActivity四種啟動模式和taskAffinity屬性詳解

在android應用開發中,打造良好的使用者體驗是非常重要的。而在使用者體驗中,介面的引導和跳轉是值得深入研究的重要內容。在開發中,與介面跳轉聯絡比較緊密的概念是Task(任務)和Back Stack(回退棧)。activity的啟動模式會影響Task和Back Stack

AndroidActivity之間引數傳遞

Intent:一直穿梭在Activity之間,它不光只是為了使Activity之間進行跳轉。在跳轉的時候,還可以進行Acivity之間的引數傳遞。 下面舉幾個列子。以MianActivity,TheActivity為例子。     MianActivity類     In

Android activity實現全屏無標題欄透明

1.在xml檔案中進行配置 在專案的清單檔案AndroidManifest.xml中,在對應Activity進行如下配置即可。 2.編寫程式碼設定 在對應activity的onCreate()方法中加入如下程式碼即可 實現全屏效果: getWindow().set

AndroidActivity觸控事件傳遞原始碼學習

Activity中的觸控事件傳遞對應兩個方法:dispatchTouchEvent和onTouchEvent。分別是分發和消費。 先來看分發。 /** * Called to process touch screen events. You

AndroidActivity之間通訊

一、使用Intent     在 Android 中,不同的 Activity 例項可能執行在一個程序中,也可能執行在不同的程序中。因此我們需要一種特別的機制幫助我們在 Activity 之間傳遞訊息。Android 中通過 Intent 物件來表示一條訊息,一個 Inten

AndroidActivity的View組成

原始碼基於API25 最簡單的Activity 這裡以繼承自Activity為準,不是AppCompatActivity,AppCompatActivity是有一點不同的。 public class Main2Activity extends

Android Activity的記憶體洩漏,原因以及處理方法

文章參考: 八個造成 Android 應用記憶體洩露的原因 Android記憶體洩漏產生的原因以及解決方案OOM android 常見記憶體洩漏原因及解決辦法 記憶體洩漏,說的更直白點,就是你想讓一個物件在下次GC的時候徹底被回收,但是呢,這個物件所處的

Android自定義Dialog對話方塊消除邊距消除黑邊框和顯示動畫

這兩天練習一個專案 顯示對話方塊類似於QQ發表說說,寬是充滿螢幕的 並且有上下的顯示隱藏動畫 但是AlertDialog預設顯示模式是有邊距的 用了很多方法怎麼也消除不了AlertDialog的邊距 如下圖這樣 後來選擇使用Dialog消除了預設邊距的

AndroidActivity與AppCompatActivity的理解

package com.chy.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; /* * support v4 FragmentActivity 相容2.x模式下使用Fragm

Activity作為Dialog形式展現

What Why How 通常步驟 加入動畫 注意點 What Activity眾所周知,不再贅述 Why 當你遇到在一個Dialog樣式的popup中進行十分複雜