最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android中Dialog自定義上下文花式菜單

 更新時(shí)間:2017年10月09日 16:20:46   作者:JustingWang_1  
這篇文章主要為大家詳細(xì)介紹了Android中Dialog自定義上下文花式菜單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

這是一個(gè)類似于QQ里面長(zhǎng)按消息彈出菜單的效果,菜單跟著item動(dòng)
閑話不說(shuō),上代碼
先自定義一個(gè)Dialog

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import io.dcloud.H5B79C397.R;

/**
 * Created by Administrator on 2017/9/19 0019.
 */

public class SelfDialog extends Dialog {
  private TextView copy;//確定按鈕
  private TextView del;//取消按鈕
  private onNoOnclickListener noOnclickListener;//取消按鈕被點(diǎn)擊了的監(jiān)聽器
  private onYesOnclickListener yesOnclickListener;//確定按鈕被點(diǎn)擊了的監(jiān)聽器
  public SelfDialog(Context context) {
    super(context, R.style.MyDialog);
  }

  public void setNoOnclickListener(String str, onNoOnclickListener onNoOnclickListener) {
    if (str != null) {
      //noStr = str;
    }
    this.noOnclickListener = onNoOnclickListener;
  }
  public void setYesOnclickListener(String str, onYesOnclickListener onYesOnclickListener) {
    if (str != null) {
      //yesStr = str;
    }
    this.yesOnclickListener = onYesOnclickListener;
  }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_noticeactivity_dialog);
    //按空白處不能取消動(dòng)畫
    setCanceledOnTouchOutside(true);

    //初始化界面控件
    initView();
    //初始化界面數(shù)據(jù)
    //初始化界面控件的事件
    initEvent();
  }
  private void initEvent() {
    //設(shè)置確定按鈕被點(diǎn)擊后,向外界提供監(jiān)聽
    del.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        if (yesOnclickListener != null) {
          yesOnclickListener.onYesClick();
        }
      }
    });
    //設(shè)置取消按鈕被點(diǎn)擊后,向外界提供監(jiān)聽
    copy.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        if (noOnclickListener != null) {
          noOnclickListener.onNoClick();
        }
      }
    });
  }
  private void initView() {
    del = (TextView) findViewById(R.id.del);
    copy = (TextView) findViewById(R.id.text);

  }

  public interface onYesOnclickListener {
    public void onYesClick();
  }

  public interface onNoOnclickListener {
    public void onNoClick();
  }
}

然后看Dialog里面的布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="horizontal">

  <TextView
    android:text="復(fù)制"
    android:clickable="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/text"
    android:drawableTop="@mipmap/collect"/>

  <TextView

    android:layout_marginLeft="15dp"
    android:clickable="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="刪除"
    android:id="@+id/del"
    android:drawableTop="@mipmap/myself"/>
</LinearLayout>

還給Dialog設(shè)置了一個(gè)樣式

  <style name="MyDialog" parent="android:style/Theme.Dialog">
    <!--背景顏色及和透明程度-->
    <item name="android:windowBackground">@android:color/transparent</item>
    <!--是否去除標(biāo)題 -->
    <item name="android:windowNoTitle">true</item>
    <!--是否去除邊框-->
    <item name="android:windowFrame">@null</item>
    <!--是否浮現(xiàn)在activity之上-->
    <item name="android:windowIsFloating">true</item>
    <!--是否模糊-->
    <item name="android:backgroundDimEnabled">false</item>
  </style>

然后看主代碼

public class MenuTestActivity extends Activity {
  private ListView listView;
  private SelfDialog selfDialog;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu_test);
    listView = (ListView) findViewById(R.id.list);
    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(MenuTestActivity.this, android.R.layout.simple_list_item_1);
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");
    adapter.add("1");

    listView.setAdapter(adapter);
    listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
      @Override
      public boolean onItemLongClick(final AdapterView<?> parent, final View view, final int position, long id) {
        int[] location = new int[2];
        // parent.getItemAtPosition(position).getLocationOnScreen(location);
        view.getLocationOnScreen(location);//當(dāng)前item的坐標(biāo)

        int x = location[0];
        int y = location[1];
        System.out.println("x:"+x+"y:"+y);//獲取控件位置坐標(biāo)可采用以上方法

        selfDialog = new SelfDialog(MenuTestActivity.this);
       // Window window = selfDialog.getWindow();
        // window.setContentView(view);
        Window dialogWindow = selfDialog.getWindow();
        WindowManager.LayoutParams lp = dialogWindow.getAttributes();
        dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP);
        lp.x = location[0]+80; // 新位置X坐標(biāo)
        lp.y = location[1]-30; // 新位置Y坐標(biāo)


        // 當(dāng)Window的Attributes改變時(shí)系統(tǒng)會(huì)調(diào)用此函數(shù),可以直接調(diào)用以應(yīng)用上面對(duì)窗口參數(shù)的更改,也可以用setAttributes
        // dialog.onWindowAttributesChanged(lp);
        dialogWindow.setAttributes(lp);

        selfDialog.setCanceledOnTouchOutside(true);// 設(shè)置點(diǎn)擊屏幕Dialog不消失

        selfDialog.setYesOnclickListener("確定", new SelfDialog.onYesOnclickListener() {
          @Override
          public void onYesClick() {
            Toast.makeText(MenuTestActivity.this, adapter.getItem(position), Toast.LENGTH_LONG).show();
            selfDialog.dismiss();
          }
        });
        selfDialog.setNoOnclickListener("取消", new SelfDialog.onNoOnclickListener() {
          @Override
          public void onNoClick() {
            Toast.makeText(MenuTestActivity.this, adapter.getItem(position), Toast.LENGTH_LONG).show();
            selfDialog.dismiss();
          }
        });
        selfDialog.show();

        return true;
      }
    });


  }
}

主程序的布局

<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="match_parent"
  android:layout_height="match_parent"
  tools:context="io.dcloud.H5B79C397.testActivity.MenuTestActivity">

  <ListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/list"></ListView>

</LinearLayout>

效果圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android中實(shí)現(xiàn)ping功能的多種方法詳解

    Android中實(shí)現(xiàn)ping功能的多種方法詳解

    這篇文章主要介紹了Android中實(shí)現(xiàn)ping功能的多種方法詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Android長(zhǎng)按imageview把圖片保存到本地的實(shí)例代碼

    Android長(zhǎng)按imageview把圖片保存到本地的實(shí)例代碼

    本文通過(guò)代碼給大家介紹了Android長(zhǎng)按imageview把圖片保存到本地的實(shí)現(xiàn)方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-12-12
  • Android 修改Preferences默認(rèn)樣式的步驟

    Android 修改Preferences默認(rèn)樣式的步驟

    這篇文章主要介紹了Android 修改Preferences默認(rèn)樣式的步驟,幫助大家更好的理解和學(xué)習(xí)使用Android開發(fā),感興趣的朋友可以了解下
    2021-04-04
  • 淺談Android手機(jī)的搶紅包插件

    淺談Android手機(jī)的搶紅包插件

    這篇文章主要介紹了淺談Android手機(jī)的搶紅包插件,對(duì)搶紅包插件感興趣的同學(xué)一定要看啊
    2021-04-04
  • 深入AndroidManifest.xml文件解析詳解

    深入AndroidManifest.xml文件解析詳解

    AndroidManifest.xml是每個(gè)android程序中必須的文件。它位于整個(gè)項(xiàng)目的根目錄,描述了package中暴露的組件(activities,services,等等),他們各自的實(shí)現(xiàn)類,各種能被處理的數(shù)據(jù)和啟動(dòng)位置
    2013-05-05
  • Android之RAS加密算法測(cè)試實(shí)例

    Android之RAS加密算法測(cè)試實(shí)例

    這篇文章介紹了Android之RAS加密算法測(cè)試實(shí)例,有需要的朋友可以參考一下
    2013-09-09
  • Android繪制音樂(lè)播放器示波器

    Android繪制音樂(lè)播放器示波器

    這篇文章主要為大家詳細(xì)介紹了Android繪制音樂(lè)播放器示波器的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Android自定義 WebView瀏覽器

    Android自定義 WebView瀏覽器

    WebView是Android中一個(gè)非常實(shí)用的組件,它和Safai、Chrome一樣都是基于Webkit網(wǎng)頁(yè)渲染引擎。接下來(lái)通過(guò)本文給大家介紹android自定義webview瀏覽器,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • android開啟免提切換功能示例

    android開啟免提切換功能示例

    這篇文章主要介紹了android開啟免提切換功能示例,需要的朋友可以參考下
    2014-03-03
  • Android實(shí)現(xiàn)TCP客戶端支持讀寫操作

    Android實(shí)現(xiàn)TCP客戶端支持讀寫操作

    這篇文章主要介紹了Android-實(shí)現(xiàn)TCP客戶端,支持讀寫操作,主要是通過(guò)socket讀寫tcp,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論

玉环县| 湘西| 新乐市| 鄂州市| 眉山市| 榆社县| 旌德县| 化州市| 同仁县| 休宁县| 黑河市| 云阳县| 左贡县| 镇巴县| 化州市| 京山县| 明溪县| 康定县| 四会市| 衡山县| 郑州市| 宁乡县| 云和县| 靖州| 双牌县| 德州市| 彝良县| 揭东县| 台州市| 灯塔市| 白银市| 龙里县| 福州市| 富源县| 获嘉县| 隆德县| 成武县| 油尖旺区| 彭山县| 满城县| 文山县|