本文来自网易云社区

作者:孙有军

  <LinearLayout
        android:id="@+id/input_num_line_3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/input_num_line_2"
        android:baselineAligned="false"
        android:orientation="horizontal">         <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_weight="1">             <TextView
                android:id="@+id/input_key_number_4"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_centerInParent="true"
                android:background="@drawable/keyboard_item_selector"
                android:focusable="true"
                android:gravity="center"
                android:text="4"
                android:textColor="#ffffff"
                android:textSize="30sp"/>
        </RelativeLayout>         <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_weight="1">             <TextView
                android:id="@+id/input_key_number_5"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_centerInParent="true"
                android:background="@drawable/keyboard_item_selector"
                android:focusable="true"
                android:gravity="center"
                android:text="5"
                android:textColor="#ffffff"
                android:textSize="30sp"/>
        </RelativeLayout>         <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_weight="1">             <TextView
                android:id="@+id/input_key_number_6"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_centerInParent="true"
                android:background="@drawable/keyboard_item_selector"
                android:focusable="true"
                android:gravity="center"
                android:text="6"
                android:textColor="#ffffff"
                android:textSize="30sp"/>
        </RelativeLayout>
    </LinearLayout>     <LinearLayout
        android:id="@+id/input_num_line_4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/input_num_line_3"
        android:baselineAligned="false"
        android:orientation="horizontal">         <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_weight="1">             <TextView
                android:id="@+id/input_key_number_1"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_centerInParent="true"
                android:background="@drawable/keyboard_item_selector"
                android:focusable="true"
                android:gravity="center"
                android:text="1"
                android:textColor="#ffffff"
                android:textSize="30sp"/>
        </RelativeLayout>         <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_weight="1">             <TextView
                android:id="@+id/input_key_number_2"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_centerInParent="true"
                android:background="@drawable/keyboard_item_selector"
                android:focusable="true"
                android:gravity="center"
                android:text="2"
                android:textColor="#ffffff"
                android:textSize="30sp"/>
        </RelativeLayout>         <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_weight="1">             <TextView
                android:id="@+id/input_key_number_3"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_centerInParent="true"
                android:background="@drawable/keyboard_item_selector"
                android:focusable="true"
                android:gravity="center"
                android:text="3"
                android:textColor="#ffffff"
                android:textSize="30sp"/>
        </RelativeLayout>
    </LinearLayout>     <TextView
        android:id="@+id/show_phone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/input_num_line_4"
        android:layout_centerInParent="true"
        android:padding="@dimen/gap_20_dp"
        android:textColor="#ffffff"
        android:textSize="33sp"/>
</RelativeLayout>

对应的界面代码如下:

public class DialPanFragment extends Fragment implements View.OnClickListener {

    private TextView showPhone;

    private ImageView dialBnt;

    public DialPanFragment() {
        // Required empty public constructor
    }     @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_dial_pan, container, false);
    }     @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        findViews();
    }     private void findViews() {
        showPhone = (TextView) getView().findViewById(R.id.show_phone);
        dialBnt = (ImageView) getView().findViewById(R.id.dial_icon);
        dialBnt.setOnClickListener(this);
        dialBnt.setTag(-2);
        dialBnt.setEnabled(false);
        View view0 = getView().findViewById(R.id.input_key_number_0);
        view0.setTag(0);
        view0.setOnClickListener(this);
        View view1 = getView().findViewById(R.id.input_key_number_1);
        view1.setTag(1);
        view1.setOnClickListener(this);
        view1.setNextFocusUpId(R.id.dial_tab);
        View view2 = getView().findViewById(R.id.input_key_number_2);
        view2.setTag(2);
        view2.setOnClickListener(this);
        view2.setNextFocusUpId(R.id.dial_tab);
        View view3 = getView().findViewById(R.id.input_key_number_3);
        view3.setTag(3);
        view3.setOnClickListener(this);
        view3.setNextFocusUpId(R.id.dial_tab);
        View view4 = getView().findViewById(R.id.input_key_number_4);
        view4.setTag(4);
        view4.setOnClickListener(this);
        View view5 = getView().findViewById(R.id.input_key_number_5);
        view5.setTag(5);
        view5.setOnClickListener(this);
        View view6 = getView().findViewById(R.id.input_key_number_6);
        view6.setTag(6);
        view6.setOnClickListener(this);
        View view7 = getView().findViewById(R.id.input_key_number_7);
        view7.setTag(7);
        view7.setOnClickListener(this);
        View view8 = getView().findViewById(R.id.input_key_number_8);
        view8.setTag(8);
        view8.setOnClickListener(this);
        View view9 = getView().findViewById(R.id.input_key_number_9);
        view9.setTag(9);
        view9.setOnClickListener(this);
        View viewDel = getView().findViewById(R.id.input_key_number_del);
        viewDel.setTag(-1);
        viewDel.setOnClickListener(this);
    }     @Override
    public void onClick(View v) {
        int tag = (int) v.getTag();
        if (tag == -2) {
            dial();
        } else if (tag == -1) {// DEL
            delNumber();
        } else {
            inputNumber(tag);
        }
    }     private void delNumber() {
        String text = showPhone.getText().toString();
        if (text != null && text.length() > 0) {
            text = text.substring(0, text.length() - 1);
            showPhone.setText(text);
        }
        dialBtnState(text);
    }     private void inputNumber(int tag) {
        String text = showPhone.getText().toString();
        if (text == null) {
            text = new String(String.valueOf(tag));
        } else {
            text = text + tag;
        }
        dialBtnState(text);
        showPhone.setText(text);
    }     private void dial() {
        String text = showPhone.getText().toString();
        int len = TextUtils.isEmpty(text) ? 0 : text.length();
        if (len != 11) {
            ToastUtil.showToast("你输入的账号不合法!");
            showPhone.setText("");
        } else {
            String uid = ContactProvider.getUidByPhone(text);
            if (TextUtils.isEmpty(uid)) {
                ToastUtil.showToast("该账号不存在!");
            } else {
                // TODO
            }
        }
    }     private void dialBtnState(String text) {
        dialBnt.setEnabled(!TextUtils.isEmpty(text));
    }
}

网易云免费体验馆,0成本体验20+款云产品!

更多网易研发、产品、运营经验分享请访问网易云社区

相关文章:
【推荐】 网易云易盾CTO朱浩齐:我们是如何用AI赋能内容安全?
【推荐】 如何实现360度的手游安全防护?网易云易盾专家分享最新实践
【推荐】 从细节处谈Android冷启动优化

Android TV 开发(3)的更多相关文章

  1. Android TV开发总结(六)构建一个TV app的直播节目实例

    请尊重分享成果,转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52966319 近年来,Android TV的迅速发展,传统的有线电视受 ...

  2. Android TV开发总结(五)TV上屏幕适配总结

    前言:前面几篇总结一些TV上的小Sample,开源到GitHub:https://github.com/hejunlin2013/TVSample, 点击链接,可以持续关注.今天总结下TV上屏幕适配. ...

  3. Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52835829 前言:上篇中,&l ...

  4. 聊聊真实的 Android TV 开发技术栈

    智能电视越来越普及了,华为说四月发布智能电视跳票了,一加也说今后要布局智能电视,在智能电视方向,小米已经算是先驱了.但是还有不少开发把智能电视简单的理解成手机屏幕的放大,其实这两者并不一样. 一.序 ...

  5. Android TV开发总结(七)构建一个TV app中的剧集列表控件

    原文:Android TV开发总结(七)构建一个TV app中的剧集列表控件 版权声明:我已委托"维权骑士"(rightknights.com)为我的文章进行维权行动.转载务必转载 ...

  6. Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听

    原文:Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听 简单记录下android 盒子开发遥控器的监听 ,希望能帮到新入门的朋友们 不多说,直接贴代码 public cla ...

  7. Android TV开发总结(四)通过RecycleView构建一个TV app列表页(仿腾讯视频TV版)

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52854131 前言:昨晚看锤子手 ...

  8. Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)

    前言:上篇是介绍构建TV app前要知道的一些事儿,开发Android TV和手机本质上没有太大的区别,屏大,焦点处理,按键处理,是有别于有手机和Pad的实质区别.今天来介绍TV中Metro UI风格 ...

  9. Android TV 开发 (1)

    本文来自网易云社区 作者:孙有军 前言 这里主要记录几个TV问题的解决方案,如果对这个不感兴趣的其实就不用往下看了. 这几天有一个需求就是要求出一个TV版本的app,之前没有具体的了解Tv版的app有 ...

  10. Android TV开发总结(一)构建一个TV app前要知道的事儿

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52792562 前言:近年来,智能 ...

随机推荐

  1. 从数据流角度管窥 Moya 的实现(一):构建请求

    相信大家都封装过网络层. 虽然系统提供的网络库以及一些著名的第三方网络库(AFNetworking, Alamofire)已经能满足各种 HTTP/HTTPS的网络请求,但直接在代码里用起来,终归是比 ...

  2. Python:函数的命名空间、作用域与闭合函数

    1,参数陷阱 如果默认参数的只是一个可变数据类型,那么每一次调用的时候,如果不传值就共用这个数据类型的资源. 2,三元运算 c=a if a>b else b#如果a>b返回a,否则,返回 ...

  3. 【[JSOI2007]文本生成器】

    \(AC\)机上的计数\(dp\)啊 并没有想到反着求出不合法的串的个数,直接正面硬上 设\(dp[i][j][0/1]\)表示匹配出的长度为\(i\),在\(AC\)机上位置为\(j\),没有/有匹 ...

  4. 2018.11.30 zsh: command not found: mysql 的解决办法mac环境下

    系统环境变量的问题.解决办法: 1.打开终端.输入open .zshrc 会出现一个可编辑文档, 2.找到# User configuration部分,在下一行添加source ~/.bash_pro ...

  5. iOS程序的启动原理

    一.在一些老的项目中,有很多不是通过代码添加窗口和跟控制器.是通过设置MainInterface(设置最主要的xib),在xib中通过图形化的操作设置应用程序的代理->设置窗口->设置根控 ...

  6. A Year in Computer Vision

    A Year in Computer Vision http://themtank.org/

  7. MarkDown/Html在线转换(支持代码高亮,可复制到微信公众号、今日头条)

    MarkDown/Html在线转换能够将md渲染成html并且能保持代码高亮,可以方便的复制待格式的html粘贴到微信公众号,CSDN,简书,博客园,开源中国等. 扫码体验在线助手小程序 我是java ...

  8. 菜鸟笔记 -- Chapter 11 格式化

    我们在String中介绍过它有一个格式化的方法,在其它很多地方,也都能看到格式化的操作,那么这节我们就来认真了解一下Java中的格式化操作. 我们在操作中涉及到的格式化有字符串的格式化和一些其它数据类 ...

  9. [洛谷]P3704-数字表格

    [洛谷]P3704-数字表格 妙啊,这又是一道反演题,而且个人感觉比较高级 传送门 大意 在\(N\times M\)的数表\(a\)中,\(a_{i,j}\)表示f((i,j)),其中\((i,j) ...

  10. IDEA的使用方法(三)(改变字体主题)

    今天正式写代码的时候发现,一开始由于破解的太随意,没有设定好主题和字体现在看的有点昏,那么接下来就发一个该如何改变IDEA的字体和主题的教程: File——>setting——>Edito ...