通话记录界面 包含拨号界面的监听事件

/**
 * 通话记录界面  包含拨号界面
 */
public class DialFragment extends Fragment implements ICalllogView {
private ListView lvCalllogs;
private List<CallLog> logs;
private ICallLogPresenter presenter;
private CallLogAdapter adapter;
//
private LinearLayout llKeyboard;
private Button button1;
private Button button2;
private Button button3;
private Button button4;
private Button button5;
private Button button6;
private Button button7;
private Button button8;
private Button button9;
private Button button10;
private Button button11;
private Button button12;
private TextView tvTitle;
private ImageView ivBack;

public DialFragment() {
presenter = new CallLogPresenter(this);
}

public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_dial, null);
// 控件初始化
lvCalllogs = (ListView) view.findViewById(R.id.lvCalllogs);
setViews(view);
// 调用presenter的方法 加载所有通话记录
presenter.loadCallLogs();
// 添加监听
setListener();
return view;
}

private void setViews(View view) {
ivBack = (ImageView) view.findViewById(R.id.imageView2);
tvTitle = (TextView) view.findViewById(R.id.tvTitle);
llKeyboard = (LinearLayout) view.findViewById(R.id.llKeyboard);
button1 = (Button) view.findViewById(R.id.button1);
button2 = (Button) view.findViewById(R.id.button2);
button3 = (Button) view.findViewById(R.id.button3);
button4 = (Button) view.findViewById(R.id.button4);
button5 = (Button) view.findViewById(R.id.button5);
button6 = (Button) view.findViewById(R.id.button6);
button7 = (Button) view.findViewById(R.id.button7);
button8 = (Button) view.findViewById(R.id.button8);
button9 = (Button) view.findViewById(R.id.button9);
button10 = (Button) view.findViewById(R.id.button10);
button11 = (Button) view.findViewById(R.id.button11);
button12 = (Button) view.findViewById(R.id.button12);
}

/**
* 添加监听
*/
private void setListener() {
ivBack.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String text=tvTitle.getText().toString();
if(text.equals("") || text.equals("输入电话")){
return;
}
text = StringUtils.AToB(text);
//text  13333333
text=text.substring(0, text.length()-1);
text=StringUtils.BToA(text);
if(text.equals("")){
tvTitle.setText("输入电话");
return;
}
tvTitle.setText(text);
}
});
/* 给12个按钮添加监听 */
KeyPressListener l = new KeyPressListener();
button1.setOnClickListener(l);
button2.setOnClickListener(l);
button3.setOnClickListener(l);
button4.setOnClickListener(l);
button5.setOnClickListener(l);
button6.setOnClickListener(l);
button7.setOnClickListener(l);
button8.setOnClickListener(l);
button9.setOnClickListener(l);
button10.setOnClickListener(l);
button11.setOnClickListener(l);
button12.setOnClickListener(l);
/* 滚动listView是让键盘消失 */
lvCalllogs.setOnScrollListener(new OnScrollListener() {
public void onScrollStateChanged(AbsListView view, int scrollState) {
if(scrollState != OnScrollListener.SCROLL_STATE_IDLE){
if(llKeyboard.getVisibility()==View.VISIBLE){
llKeyboard.setVisibility(View.INVISIBLE);
//执行动画
TranslateAnimation anim = new TranslateAnimation(0, 0, 0,llKeyboard.getHeight());
anim.setDuration(300);
llKeyboard.startAnimation(anim);
}
}
}
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
});
/* 当触摸tvTitle时显示软键盘 */
tvTitle.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(llKeyboard.getVisibility()==View.VISIBLE){
return true;
}
llKeyboard.setVisibility(View.VISIBLE);
//
TranslateAnimation anim = new TranslateAnimation(0, 0, llKeyboard.getHeight(), 0);
anim.setDuration(300);
llKeyboard.startAnimation(anim);
return true;
}
});
}

@Override
public void setAdapter() {
// 自定义Adapter 创建adapter
adapter = new CallLogAdapter(logs, getActivity(), lvCalllogs);
lvCalllogs.setAdapter(adapter);
}

@Override
public void setCalllogList(List<CallLog> logs) {
this.logs = logs;
}
/**
* 键盘上按钮的监听
*/
class KeyPressListener implements OnClickListener{
private String key;
public KeyPressListener() {
}
public KeyPressListener(String keyText) {
this.key = keyText;
}
@Override
public void onClick(View v) {
Button button=(Button) v;
Log.i("info", "key:"+button.getText().toString());
String text=tvTitle.getText().toString();
if(text.equals("输入电话")){
text="";
}
//把text变成不带-的
text=StringUtils.AToB(text);
text+=button.getText().toString();
//再把text变成带-的 给TextView赋值
text=StringUtils.BToA(text);
//
tvTitle.setText(text);
}
}
}

---------------------------------------------------------------------------
工具类
public class StringUtils {
/**
* 把带-的变成不带-的
* @param text  133-3333-333
* @return
*/
public static String AToB(String text){
return text.replace("-", "");
}
/**
* 把不带-的变成带-的
* @param text  
* @return
* 133   --> 133
* 1333  -->  133-3
* 133333333 --> 133-3333-33
*/
public static String BToA(String text){
StringBuilder sb = new StringBuilder(text);
if(sb.length()<=3){
return sb.toString();
}
if(sb.length()>3 && sb.length()<=7){
sb.insert(3, "-");
return sb.toString();
}
if(sb.length()>7){
sb.insert(3, "-");
sb.insert(8, "-");
return sb.toString();
}
return text;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值