android viewpage的使用
在使用之前要加support.v4包哦,一般在D:\android-sdk-windows\extras\android\support\v4目录下面,好像4.0以后见工程的时候自动加载的......
下面贴代码及效果图:
mainactivity类代码如下:
package com.xy.viewpager;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.BitmapFactory;
public class MainActivity extends Activity {
private ViewPager mPager;// 页卡内容
private List<View> listViews; // Tab页面列表
private ImageView cursor;// 动画图片
private TextView t1, t2, t3;// 页卡头标
private int offset = 0;// 动画图片偏移量
private int currIndex = 0;// 当前页卡编号
private int bmpW;// 动画图片宽度
MyPagerAdapter adapter;
LayoutInflater mInflater;
RelativeLayout rel;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("Viewpage", "--onCreate--");
initImageView();
initTextView();
initPageView();
}
private void initPageView() {
mInflater = getLayoutInflater();
listViews = new ArrayList<View>();
listViews.add(mInflater.inflate(R.layout.layou1, null));
listViews.add(mInflater.inflate(R.layout.layou2, null));
listViews.add(mInflater.inflate(R.layout.layou3, null));
adapter = new MyPagerAdapter(listViews);
mPager = (ViewPager) findViewById(R.id.page);
mPager.setAdapter(adapter);
mPager.setCurrentItem(0);
mPager.setOnPageChangeListener(new MyOnPageChangeListener());
}
private void initTextView() {
t1 = (TextView) findViewById(R.id.tab1);
t2 = (TextView) findViewById(R.id.tab2);
t3 = (TextView) findViewById(R.id.tab3);
t1.setOnClickListener(new MyOnClickListener(0));
t2.setOnClickListener(new MyOnClickListener(1));
t3.setOnClickListener(new MyOnClickListener(2));
}
private void initImageView() {
cursor = (ImageView) findViewById(R.id.cursor);
rel = (RelativeLayout) findViewById(R.id.layout);
bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.png)
.getWidth();
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenW = dm.widthPixels;
offset = (screenW / 3 - bmpW) / 2;
// Matrix matrix = new Matrix();
// matrix.postTranslate(offset, 0);
cursor.setBackgroundResource(R.drawable.png);
// cursor.setScaleType(ScaleType.MATRIX);
// cursor.setImageMatrix(matrix);
rel.setPadding(offset, 0, 0, 0);
}
public class MyOnClickListener implements View.OnClickListener {
private int index = 0;
public MyOnClickListener(int i) {
index = i;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mPager.setCurrentItem(index);
}
}
public class MyPagerAdapter extends PagerAdapter implements OnClickListener {
public List<View> mListViews;
public View v1;
public View v2;
public View v3;
public Button mButton;
public MyPagerAdapter(List<View> mListViews) {
this.mListViews = mListViews;
getViewClickListener(mListViews);
}
public void getViewClickListener(List<View> listview) {
v1 = listview.get(0);
v2 = listview.get(1);
v3 = listview.get(2);
mButton = (Button) v1.findViewById(R.id.button);
mButton.setOnClickListener(this);
}
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView(mListViews.get(arg1));
}
public void finishUpdate(View arg0) {
}
@Override
public int getCount() {
return mListViews.size();
}
@Override
public Object instantiateItem(View arg0, int arg1) {
((ViewPager) arg0).addView(mListViews.get(arg1), 0);
return mListViews.get(arg1);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == (arg1);
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View arg0) {
}
@Override
public void onClick(View v) {
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
.setIcon(null)
.setTitle("dialog")
.setMessage("nihao")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0,
int arg1) {
MainActivity.this.finish();
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0,
int arg1) {
}
}).create();
// 显示对话框也可以使用showDialog(int id)方法显示对话框
dialog.show();
}
}
public class MyOnPageChangeListener implements OnPageChangeListener {
int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量
int two = one * 2;// 页卡1 -> 页卡3 偏移量
@Override
public void onPageSelected(int arg0) {
Animation animation = null;
switch (arg0) {
case 0:
if (currIndex == 1) {
animation = new TranslateAnimation(one, 0, 0, 0);
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, 0, 0, 0);
}
break;
case 1:
if (currIndex == 0) {
animation = new TranslateAnimation(offset, one, 0, 0);
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, one, 0, 0);
}
break;
case 2:
if (currIndex == 0) {
animation = new TranslateAnimation(offset, two, 0, 0);
} else if (currIndex == 1) {
animation = new TranslateAnimation(one, two, 0, 0);
}
break;
}
currIndex = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(300);
rel.startAnimation(animation);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
}
}
mainlayout.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:orientation="vertical" >
<LinearLayout
android:id="@+id/nav"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="#efefef" >
<TextView
android:id="@+id/tab1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="页片1"
android:textColor="#000000" />
<TextView
android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="页片2"
android:textColor="#000000" />
<TextView
android:id="@+id/tab3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="页片3"
android:textColor="#000000" />
</LinearLayout>
<RelativeLayout
android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/cursor"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
<android.support.v4.view.ViewPager
android:id="@+id/page"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</android.support.v4.view.ViewPager>
</LinearLayout>
layout1.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="#565656"
android:orientation="vertical" >
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="点击事件" />
</LinearLayout>
layout2.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:orientation="vertical"
android:background="#abab00">
</LinearLayout>
layout3.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="#00abcd"
android:orientation="vertical" >
</LinearLayout>
android viewpage的使用
在使用之前要加support.v4包哦,一般在D:\android-sdk-windows\extras\android\support\v4目录下面,好像4.0以后见工程的时候自动加载的......
下面贴代码及效果图:
mainactivity类代码如下:
package com.xy.viewpager;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.BitmapFactory;
public class MainActivity extends Activity {
private ViewPager mPager;// 页卡内容
private List<View> listViews; // Tab页面列表
private ImageView cursor;// 动画图片
private TextView t1, t2, t3;// 页卡头标
private int offset = 0;// 动画图片偏移量
private int currIndex = 0;// 当前页卡编号
private int bmpW;// 动画图片宽度
MyPagerAdapter adapter;
LayoutInflater mInflater;
RelativeLayout rel;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("Viewpage", "--onCreate--");
initImageView();
initTextView();
initPageView();
}
private void initPageView() {
mInflater = getLayoutInflater();
listViews = new ArrayList<View>();
listViews.add(mInflater.inflate(R.layout.layou1, null));
listViews.add(mInflater.inflate(R.layout.layou2, null));
listViews.add(mInflater.inflate(R.layout.layou3, null));
adapter = new MyPagerAdapter(listViews);
mPager = (ViewPager) findViewById(R.id.page);
mPager.setAdapter(adapter);
mPager.setCurrentItem(0);
mPager.setOnPageChangeListener(new MyOnPageChangeListener());
}
private void initTextView() {
t1 = (TextView) findViewById(R.id.tab1);
t2 = (TextView) findViewById(R.id.tab2);
t3 = (TextView) findViewById(R.id.tab3);
t1.setOnClickListener(new MyOnClickListener(0));
t2.setOnClickListener(new MyOnClickListener(1));
t3.setOnClickListener(new MyOnClickListener(2));
}
private void initImageView() {
cursor = (ImageView) findViewById(R.id.cursor);
rel = (RelativeLayout) findViewById(R.id.layout);
bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.png)
.getWidth();
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenW = dm.widthPixels;
offset = (screenW / 3 - bmpW) / 2;
// Matrix matrix = new Matrix();
// matrix.postTranslate(offset, 0);
cursor.setBackgroundResource(R.drawable.png);
// cursor.setScaleType(ScaleType.MATRIX);
// cursor.setImageMatrix(matrix);
rel.setPadding(offset, 0, 0, 0);
}
public class MyOnClickListener implements View.OnClickListener {
private int index = 0;
public MyOnClickListener(int i) {
index = i;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mPager.setCurrentItem(index);
}
}
public class MyPagerAdapter extends PagerAdapter implements OnClickListener {
public List<View> mListViews;
public View v1;
public View v2;
public View v3;
public Button mButton;
public MyPagerAdapter(List<View> mListViews) {
this.mListViews = mListViews;
getViewClickListener(mListViews);
}
public void getViewClickListener(List<View> listview) {
v1 = listview.get(0);
v2 = listview.get(1);
v3 = listview.get(2);
mButton = (Button) v1.findViewById(R.id.button);
mButton.setOnClickListener(this);
}
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView(mListViews.get(arg1));
}
public void finishUpdate(View arg0) {
}
@Override
public int getCount() {
return mListViews.size();
}
@Override
public Object instantiateItem(View arg0, int arg1) {
((ViewPager) arg0).addView(mListViews.get(arg1), 0);
return mListViews.get(arg1);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == (arg1);
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View arg0) {
}
@Override
public void onClick(View v) {
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
.setIcon(null)
.setTitle("dialog")
.setMessage("nihao")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0,
int arg1) {
MainActivity.this.finish();
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0,
int arg1) {
}
}).create();
// 显示对话框也可以使用showDialog(int id)方法显示对话框
dialog.show();
}
}
public class MyOnPageChangeListener implements OnPageChangeListener {
int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量
int two = one * 2;// 页卡1 -> 页卡3 偏移量
@Override
public void onPageSelected(int arg0) {
Animation animation = null;
switch (arg0) {
case 0:
if (currIndex == 1) {
animation = new TranslateAnimation(one, 0, 0, 0);
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, 0, 0, 0);
}
break;
case 1:
if (currIndex == 0) {
animation = new TranslateAnimation(offset, one, 0, 0);
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, one, 0, 0);
}
break;
case 2:
if (currIndex == 0) {
animation = new TranslateAnimation(offset, two, 0, 0);
} else if (currIndex == 1) {
animation = new TranslateAnimation(one, two, 0, 0);
}
break;
}
currIndex = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(300);
rel.startAnimation(animation);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
}
}
mainlayout.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:orientation="vertical" >
<LinearLayout
android:id="@+id/nav"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="#efefef" >
<TextView
android:id="@+id/tab1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="页片1"
android:textColor="#000000" />
<TextView
android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="页片2"
android:textColor="#000000" />
<TextView
android:id="@+id/tab3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="页片3"
android:textColor="#000000" />
</LinearLayout>
<RelativeLayout
android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/cursor"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
<android.support.v4.view.ViewPager
android:id="@+id/page"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</android.support.v4.view.ViewPager>
</LinearLayout>
layout1.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="#565656"
android:orientation="vertical" >
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="点击事件" />
</LinearLayout>
layout2.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:orientation="vertical"
android:background="#abab00">
</LinearLayout>
layout3.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="#00abcd"
android:orientation="vertical" >
</LinearLayout>
四个选项卡及加载数据,代码片段
四个选项卡及加载数据,代码片段
package com.cy.contact.activity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Stack;
import org.json.JSONObject;
import org.json.JSONStringer;
import org.json.JSONTokener;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Matrix;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.text.Editable;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextWatcher;
import android.text.style.ForegroundColorSpan;
import android.util.DisplayMetrics;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.view.View.OnCreateContextMenuListener;
import android.view.View.OnTouchListener;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import com.cy.contact.activity.tool.DialAdapter;
import com.cy.contact.dao.NativeCallDao;
import com.cy.contact.dao.UserDao;
import com.cy.contact.pojo.NativeUser;
import com.cy.contact.pojo.User;
import com.cy.contact.pojo.UserContent;
import com.cy.contact.usercontent.action.ActionCode;
import com.cy.contact.util.SpellUtils;
import com.j256.ormlite.dao.ForeignCollection;
/**
* 警务通讯录 拨号界面
* @author yutao
*
*/
public class DialActivity extends ToolBarActivity implements OnClickListener{
//数字功能键
private RelativeLayout dialLayout;
private Button num0Btn,num1Btn,num2Btn,
num3Btn,num4Btn,num5Btn,num6Btn,
num7Btn,num8Btn,num9Btn,numStarBtn,
numPoundBtn,allRecordBtn,noCallBtn;
private Button delNumBtn;
private TextView inputBtn;
//private ListView callLogListView;
private ListView dialAllList;
private ListView dialAlreadyList;
private ListView dialOutList;
private ListView dialMissList;
private DialAdapter dialAllAdapter;
private DialAdapter dialAlreadyAdapter;
private DialAdapter dialMissAdapter;
private DialAdapter dialOutAdapter;
private ListView contactListView; //显示搜索联系人
private int currentPosition=-1; //记录通话记录点击的位置
private int searchCurrentPosition=-1; //记录T9键盘搜索联系人点击位置
private SearchContactAdapter searchAdapter; //显示联系人适配器
//private CallLogAdapter callLogAdapter; //通话记录数据适配器
private List<NativeUser> allRecordslist = new ArrayList<NativeUser>();
private List<NativeUser> missCallsList=new ArrayList<NativeUser>();
private List<NativeUser> outCallsList=new ArrayList<NativeUser>();
private List<NativeUser> listRecords=new ArrayList<NativeUser>();
Stack<String> myStack=new Stack<String>();
private static final String DAILNUMBER="dail";
private String keyWord=null; //当前搜索关键字
private NativeCallDao nadao =null;
private UserDao udao=null;
private int callStatusFlag=0; //为true时表示显示全部通话记录状态,false时显示未接电话
private int DIALDETAIL = 1; //通话记录返回状态
private int delType = 0; //设置需要删除通话记录的类别
private RelativeLayout searchLayout; //搜索界面布局 默认为invisiable
private LinearLayout searchBtnlayout; //搜索界面下按钮布局
private Button newContactBtn,saveToHaveBtn,sendMsgBtn; //新建联系人, 保存到已有,发送短信
private List<User> searchListUser=new ArrayList<User>(); //搜索联系人数据
//viewPager用到变量
private RelativeLayout dialPage;//viewpager和选项卡 的界面
private RelativeLayout dialImageLay;
private ViewPager mPager;// ViewPager内容
private List<View> listViews; // Tab页面列表
private ImageView cursor;// 动画图片
private TextView t1, t2, t3,t4;// 页卡头标
private int offset = 0;// 动画图片偏移量
private int currIndex = 0;// 当前页卡编号
private int bmpW;// 动画图片宽度
DialPagerAdapter adapter;
LayoutInflater mInflater;
private Handler handler =new Handler(){
@Override
public void handleMessage(Message msg) {
switch(msg.what){
case 1:
initData();
break;
case 2:
initData();
break;
case 3:
initData();
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dial_layout);
nadao = NativeCallDao.getInstance(this);
udao=UserDao.getInstance(this);
initView();
initData();
//registerCllBroadCast();
initImageView();
initTextView();
initPageView();
}
private void initPageView() {
mInflater = getLayoutInflater();
listViews = new ArrayList<View>();
listViews.add(mInflater.inflate(R.layout.dial_all_layout, null));
listViews.add(mInflater.inflate(R.layout.dial_miss_layout, null));
listViews.add(mInflater.inflate(R.layout.dial_out_layout, null));
listViews.add(mInflater.inflate(R.layout.dial_already_layout, null));
adapter = new DialPagerAdapter(listViews);
mPager = (ViewPager) findViewById(R.id.page);
mPager.setAdapter(adapter);
mPager.setCurrentItem(0);
mPager.setOnPageChangeListener(new DialOnPageChangeListener());
}
private void initTextView() {
t1 = (TextView) findViewById(R.id.tab1);
t2 = (TextView) findViewById(R.id.tab2);
t3 = (TextView) findViewById(R.id.tab3);
t4 = (TextView) findViewById(R.id.tab4);
t1.setOnClickListener(new MyOnClickListener(0));
t2.setOnClickListener(new MyOnClickListener(1));
t3.setOnClickListener(new MyOnClickListener(2));
t4.setOnClickListener(new MyOnClickListener(3));
}
private void initImageView() {
cursor = (ImageView) findViewById(R.id.cursor);
dialImageLay = (RelativeLayout) findViewById(R.id.dialImageLay);
bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.ok)
.getWidth();
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenW = dm.widthPixels;
offset = (screenW / 4 - bmpW) / 2;
cursor.setBackgroundResource(R.drawable.ok);
dialImageLay.setPadding(offset, 0, 0, 0);
}
public class MyOnClickListener implements View.OnClickListener {
private int index = 0;
public MyOnClickListener(int i) {
index = i;
}
public void onClick(View v) {
// TODO Auto-generated method stub
mPager.setCurrentItem(index);
}
}
/**
* 刷新数据
*/
/*public void initData(){
handler.postDelayed(new Runnable(){
public void run() {
allRecordslist=app.dbService.getListCall();
missCallsList=app.dbService.getMissCallsList();
}
}, 100);
}*/
public void initData(){
new Runnable(){
public void run() {
allRecordslist.clear();
missCallsList.clear();
outCallsList.clear();
List<NativeUser> la = app.dbService.getListCall();
List<NativeUser> lm = app.dbService.getMissCallsList();
List<NativeUser> lo = app.dbService.getOutCallsList();
allRecordslist.addAll(la);
missCallsList.addAll(lm);
outCallsList.addAll(lo);
System.out.println("outCallsList "+outCallsList.size());
System.out.println("lo "+lo.size());
}
}.run();
}
public void registerCllBroadCast(){
IntentFilter callFilter = new IntentFilter();
callFilter.addAction(app.UPDATE_CALL);
registerReceiver(callBrodcastResever, callFilter);
}
private BroadcastReceiver callBrodcastResever = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action == app.UPDATE_CALL){
app.dbService.initOrRefreshCallRecord();
app.dbService.initOrRefreshMissCall();
app.dbService.initOrRefreshOutCall();
initData();
}
}
};
/**
* 显示拨号键盘
*/
public void showDialLayout(){
if(dialLayout.getVisibility()==View.VISIBLE){
dialLayout.setVisibility(View.INVISIBLE);
}else{
dialLayout.setVisibility(View.VISIBLE);
}
}
/**
* 通话记录数据适配器
* @author yutao
*
*/
/*class CallLogAdapter extends BaseAdapter{
private Context context;
public CallLogAdapter(Context context){
this.context = context;
}
public int getCount() {
return listRecords.size();
}
public Object getItem(int position) {
return listRecords.get(position);
}
public long getItemId(int position) {
return position;
}
class ItemView{
public ImageView seeImageView;
public ImageView callImageView;
public TextView numberText;
public TextView nameText;
public TextView timesText;
public TextView dateText;
public LinearLayout callPhone;
public LinearLayout message;
public LinearLayout dailMail;
public LinearLayout callrecord;
public LinearLayout callLogHide;
}
HashMap<Integer,View> lamp =new HashMap<Integer,View>();
public View getView(int position, View convertView, ViewGroup parent) {
View view;
ItemView itemView = null;
if(lamp.get(position) == null){
convertView = LayoutInflater.from(context).inflate(R.layout.list_calllog, null);
itemView = new ItemView();
itemView.seeImageView = (ImageView)convertView.findViewById(R.id.incallLogImage);
itemView.callImageView = (ImageView)convertView.findViewById(R.id.shortcut_phone);
itemView.numberText = (TextView)convertView.findViewById(R.id.callLognumber);
itemView.nameText = (TextView)convertView.findViewById(R.id.callLogName);
itemView.timesText = (TextView)convertView.findViewById(R.id.callLogTimes);
itemView.dateText = (TextView)convertView.findViewById(R.id.callLogdate);
itemView.callPhone = (LinearLayout)convertView.findViewById(R.id.callPhonelayout);
itemView.message = (LinearLayout)convertView.findViewById(R.id.smsMessage);
itemView.dailMail = (LinearLayout)convertView.findViewById(R.id.dail_email);
itemView.callrecord = (LinearLayout)convertView.findViewById(R.id.callrecord);
itemView.callLogHide=(LinearLayout)convertView.findViewById(R.id.callLogHide);
convertView.setTag(itemView);
}else{
view = lamp.get(position);
itemView = (ItemView)view.getTag();
}
final NativeUser user = listRecords.get(position);
if(user.getType()==3){
if(user.getUserName() ==null){
itemView.nameText.setTextColor(getResources().getColor(R.color.miss_dial_color));
itemView.nameText.setText("未知");
}else{
itemView.nameText.setText(user.getUserName());
itemView.nameText.setTextColor(getResources().getColor(R.color.miss_dial_color));
}
itemView.numberText.setText(user.getPhoneNumber());
itemView.dateText.setText(user.getCtreatTime());
itemView.timesText.setText("("+user.getCount()+")");
itemView.numberText.setTextColor(getResources().getColor(R.color.miss_dial_color));
itemView.dateText.setTextColor(getResources().getColor(R.color.miss_dial_color));
itemView.timesText.setTextColor(getResources().getColor(R.color.miss_dial_color));
}else{
if(user.getUserName() ==null){
itemView.nameText.setText("未知");
}else{
itemView.nameText.setText(user.getUserName());
}
itemView.numberText.setText(user.getPhoneNumber());
itemView.dateText.setText(user.getCtreatTime());
itemView.timesText.setText("("+user.getCount()+")");
}
if(currentPosition==-1){
itemView.callLogHide.setVisibility(View.GONE);
itemView.callImageView.setVisibility(View.VISIBLE);
}else if(position==currentPosition){
itemView.callLogHide.setVisibility(View.VISIBLE);
itemView.callImageView.setVisibility(View.GONE);
}else{
itemView.callLogHide.setVisibility(View.GONE);
itemView.callImageView.setVisibility(View.VISIBLE);
}
//image 打电话事件
itemView.callImageView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String number = user.getPhoneNumber();
if(! number.equals("")){
try{
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+number));
startActivity(intent);
}catch(Exception e){
e.printStackTrace();
}
}
}
});
//layout 打电话事件
itemView.callPhone.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String number = user.getPhoneNumber();
if(! number.equals("")){
try{
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));
startActivity(intent);
}catch(Exception e){
e.printStackTrace();
}
}
}
});
//发送短信事件
itemView.message.setOnClickListener(new OnClickListener() {
String number = user.getPhoneNumber();
public void onClick(View v) {
Intent intent = new Intent(DialActivity.this,SmsDetialActivity.class);
intent.putExtra("number", number);
intent.putExtra("DAILNUMBER", DAILNUMBER);
startActivity(intent);
}
});
//通话记录详情
itemView.callrecord.setOnClickListener(new OnClickListener() {
String number = user.getPhoneNumber();
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("number", number);
intent.putExtra("name", user.getUserName());
intent.setClass(DialActivity.this, DialRecordListAcitvity.class);
startActivityForResult(intent, DIALDETAIL);
}
});
return convertView;
}
}*/
public void initView(){
dialLayout=(RelativeLayout)findViewById(R.id.dialLayout);
num0Btn=(Button)findViewById(R.id.num0Btn);
num0Btn.setOnClickListener(this);
num1Btn=(Button)findViewById(R.id.num1Btn);
num1Btn.setOnClickListener(this);
num2Btn=(Button)findViewById(R.id.num2Btn);
num2Btn.setOnClickListener(this);
num3Btn=(Button)findViewById(R.id.num3Btn);
num3Btn.setOnClickListener(this);
num4Btn=(Button)findViewById(R.id.num4Btn);
num4Btn.setOnClickListener(this);
num5Btn=(Button)findViewById(R.id.num5Btn);
num5Btn.setOnClickListener(this);
num6Btn=(Button)findViewById(R.id.num6Btn);
num6Btn.setOnClickListener(this);
num7Btn=(Button)findViewById(R.id.num7Btn);
num7Btn.setOnClickListener(this);
num8Btn=(Button)findViewById(R.id.num8Btn);
num8Btn.setOnClickListener(this);
num9Btn=(Button)findViewById(R.id.num9Btn);
num9Btn.setOnClickListener(this);
numStarBtn=(Button)findViewById(R.id.numStarBtn);
numStarBtn.setOnClickListener(this);
numPoundBtn=(Button)findViewById(R.id.numPoundBtn);
numPoundBtn.setOnClickListener(this);
inputBtn=(TextView)findViewById(R.id.inputBtn);
inputBtn.setOnClickListener(this);
inputBtn.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
keyWord=s.toString();
if(keyWord.equals("")){ //拨号盘没有内容时,隐藏联系人ListView
searchLayout.setVisibility(View.INVISIBLE);
main.hideDialLayout();
}else{
callStatusFlag=3;
handler.postDelayed(new Runnable(){
public void run() {
searchByKeyword(keyWord);
}
},10);
main.showDialLayout();
if(searchLayout.getVisibility()==View.INVISIBLE){
searchLayout.setVisibility(View.VISIBLE);
}
}
}
});
delNumBtn=(Button)findViewById(R.id.delNumBtn);
delNumBtn.setOnClickListener(this);
allRecordBtn=(Button)findViewById(R.id.dial_allrecord_btn);
allRecordBtn.setOnClickListener(new MyOnClickListener(0));
noCallBtn = (Button)findViewById(R.id.dial_norecord_btn);
noCallBtn.setOnClickListener(new MyOnClickListener(1));
dialPage = (RelativeLayout)findViewById(R.id.dialPage);
//通话记录listView
/* callLogListView = (ListView)findViewById(R.id.phoneRecordView);//
callLogAdapter = new CallLogAdapter(this);
callLogListView.setAdapter(callLogAdapter);
*/
//点击隐藏键盘
dialPage.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(dialLayout.isShown()){
dialLayout.setVisibility(View.INVISIBLE);
}
return false;
}
});
/*//单击按钮用来隐藏listViewITem 项
callLogListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if( position != currentPosition ){
currentPosition = position;
}else{
currentPosition = -1;
}
callLogAdapter.notifyDataSetChanged();
}
});
//长按
callLogListView.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
return false;
}
});
*/
searchLayout=(RelativeLayout) findViewById(R.id.searchLayout);//搜索联系人
searchBtnlayout=(LinearLayout) findViewById(R.id.searchBtnlayout);
newContactBtn=(Button) findViewById(R.id.newContachBtn);
newContactBtn.setOnClickListener(this);
saveToHaveBtn=(Button) findViewById(R.id.saveToHaveBtn);
saveToHaveBtn.setOnClickListener(this);
sendMsgBtn=(Button) findViewById(R.id.sendMsgBtn);
sendMsgBtn.setOnClickListener(this);
//搜索显示联系人
contactListView=(ListView)findViewById(R.id.contactListView);
searchAdapter=new SearchContactAdapter(this);
contactListView.setAdapter(searchAdapter);
contactListView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(dialLayout.isShown()){
dialLayout.setVisibility(View.INVISIBLE);
}
return false;
}
});
//取得搜索Position
contactListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if(position != searchCurrentPosition){
searchCurrentPosition = position;
}else{
searchCurrentPosition = -1;
}
searchAdapter.notifyDataSetChanged();
}
});
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo menuInfo;
menuInfo = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
int position = menuInfo.position;
System.out.println("delType :"+delType);
if(delType ==1){
final NativeUser user = allRecordslist.get(position);
switch(item.getItemId()){
case 0: //删除通话记录
handler.post(new Runnable(){
public void run(){
allRecordslist.clear();
nadao.delCallRecord(user.getPhoneNumber());
app.dbService.initOrRefreshCallRecord();
app.dbService.initOrRefreshMissCall();
app.dbService.initOrRefreshOutCall();
initData();
//allRecordslist=app.dbService.getListCall();
dialAllAdapter.notifyDataSetChanged();
adapter.notifyDataSetChanged();
}
});
break;
case 1:
final EditText ed = new EditText(this);
ed.setText(user.getPhoneNumber());
new AlertDialog.Builder(this).setTitle("编辑号码")
.setView(ed).setPositiveButton("呼叫", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String number = ed.getText().toString();
if(! number.equals("")){
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));
startActivity(intent);
}
}
})
.setNegativeButton("取消", null).show();
break;
}
}else if(delType == 2){
final NativeUser user = missCallsList.get(position);
switch(item.getItemId()){
case 0: //删除通话记录
handler.post(new Runnable(){
public void run(){
missCallsList.clear();
nadao.delCallRecord(user.getPhoneNumber());
app.dbService.initOrRefreshCallRecord();
app.dbService.initOrRefreshMissCall();
app.dbService.initOrRefreshOutCall();
initData();
//missCallsList=app.dbService.getMissCallsList();
dialMissAdapter.notifyDataSetChanged();
adapter.notifyDataSetChanged();
}
});
break;
case 1:
final EditText ed = new EditText(this);
ed.setText(user.getPhoneNumber());
new AlertDialog.Builder(this).setTitle("编辑号码")
.setView(ed).setPositiveButton("呼叫", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String number = ed.getText().toString();
if(! number.equals("")){
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));
startActivity(intent);
}
}
})
.setNegativeButton("取消", null).show();
break;
}
}else if(delType == 3){
final NativeUser user = outCallsList.get(position);
switch(item.getItemId()){
case 0: //删除通话记录
handler.post(new Runnable(){
public void run(){
outCallsList.clear();
nadao.delCallRecord(user.getPhoneNumber());
app.dbService.initOrRefreshCallRecord();
app.dbService.initOrRefreshMissCall();
app.dbService.initOrRefreshOutCall();
initData();
//missCallsList=app.dbService.getMissCallsList();
dialOutAdapter.notifyDataSetChanged();
adapter.notifyDataSetChanged();
}
});
break;
case 1:
final EditText ed = new EditText(this);
ed.setText(user.getPhoneNumber());
new AlertDialog.Builder(this).setTitle("编辑号码")
.setView(ed).setPositiveButton("呼叫", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String number = ed.getText().toString();
if(! number.equals("")){
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));
startActivity(intent);
}
}
})
.setNegativeButton("取消", null).show();
break;
}
}
return super.onContextItemSelected(item);
}
/**
* 根据关键字搜索
* @param keyWord
*/
public void searchByKeyword(String keyWord){
if(keyWord!=null){
if(!keyWord.equals("")){
if(searchLayout.getVisibility()==View.INVISIBLE||searchLayout.getVisibility()==View.GONE){
dialPage.setVisibility(View.INVISIBLE);
searchLayout.setVisibility(View.VISIBLE);
}
searchListUser.clear();
searchListUser=udao.getListUserByT9Num(keyWord);
if(searchListUser.size()==0){
searchBtnlayout.setVisibility(View.VISIBLE);
}else{
searchBtnlayout.setVisibility(View.GONE);
searchAdapter.notifyDataSetChanged();
}
}else{
searchLayout.setVisibility(View.INVISIBLE);
if(dialPage.getVisibility()==View.INVISIBLE){
dialPage.setVisibility(View.VISIBLE);
searchLayout.setVisibility(View.INVISIBLE);
}
}
}
}
public void onClick(View v) {
switch(v.getId()){
case R.id.num0Btn:
myStack.add("0");
break;
case R.id.num1Btn:
myStack.add("1");
break;
case R.id.num2Btn:
myStack.add("2");
break;
case R.id.num3Btn:
myStack.add("3");
break;
case R.id.num4Btn:
myStack.add("4");
break;
case R.id.num5Btn:
myStack.add("5");
break;
case R.id.num6Btn:
myStack.add("6");
break;
case R.id.num7Btn:
myStack.add("7");
break;
case R.id.num8Btn:
myStack.add("8");
break;
case R.id.num9Btn:
myStack.add("9");
break;
case R.id.numStarBtn:
myStack.add("*");
break;
case R.id.numPoundBtn:
myStack.add("#");
break;
case R.id.delNumBtn:
if(!myStack.isEmpty()){
myStack.pop();
}
break;
case R.id.inputBtn:
String phoneNumber=getStackText();
if(!phoneNumber.equals("")){
try{
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNumber));
startActivity(intent);
}catch(Exception e){
e.printStackTrace();
}
}
break;
/*case R.id.dial_allrecord_btn: //全部电话记录
if(searchLayout.getVisibility()==View.VISIBLE){
searchLayout.setVisibility(View.INVISIBLE);
}
if(callLogListView.getVisibility()==View.INVISIBLE){
callLogListView.setVisibility(View.VISIBLE);
}
if(callStatusFlag==0){
return;
}
callStatusFlag=0;
listRecords.clear();
listRecords.addAll(allRecordslist);
callLogAdapter.notifyDataSetChanged();
break;
case R.id.dial_norecord_btn: //未接电话
if(searchLayout.getVisibility()==View.VISIBLE){
searchLayout.setVisibility(View.INVISIBLE);
}
if(callLogListView.getVisibility()==View.INVISIBLE){
callLogListView.setVisibility(View.VISIBLE);
}
if(callStatusFlag==1){
return;
}
callStatusFlag=1;
listRecords.clear();
listRecords.addAll(missCallsList);
callLogAdapter.notifyDataSetChanged();
break;*/
case R.id.newContachBtn: //新建联系人
User u=new User();
UserContent content=new UserContent();
content.setContentCategory(ActionCode.PHONE_ACTION);
content.setContentText(getStackText());
u.getListContent().add(content);
app.setEditUser(u);
startActivity(new Intent(DialActivity.this,EditContactActivity.class).putExtra("create",1));
break;
case R.id.saveToHaveBtn: //保存到已有
startActivity(new Intent(DialActivity.this,SelectContactsActivity.class).putExtra("actionCode",1).putExtra("data", getStackText()));
break;
case R.id.sendMsgBtn: //发送短信
Intent intentsms = new Intent(Intent.ACTION_VIEW);
intentsms.putExtra("sms_body","");
intentsms.putExtra("address",getStackText());
intentsms.setType("vnd.android-dir/mms-sms");
startActivity(intentsms);
break;
default:
break;
}
setInputBtnText();
}
public void setInputBtnText(){
String s=getStackText();
inputBtn.setText(s);
}
/**
* 获取栈内容
* @return
*/
public String getStackText(){
Iterator iter=myStack.iterator();
StringBuffer sb=new StringBuffer();
while(iter.hasNext()){
String s=(String) iter.next();
sb.append(s);
}
return sb.toString();
}
class SearchContactAdapter extends BaseAdapter{
private Context context;
public SearchContactAdapter(Context context){
this.context=context;
}
public int getCount() {
return searchListUser.size();
}
public Object getItem(int position) {
return searchListUser.get(position);
}
public long getItemId(int position) {
return position;
}
class ItemView{
public TextView nameTextView; //姓名
public TextView pinyinTextView; //拼音
public TextView numTextView; //电话号码
public TextView whereTextView; //归属地
public ImageView shortCutPhone; //打电话
public LinearLayout hideLayout; //隐藏视图
public LinearLayout callBtn;
public LinearLayout msgBtn;
public LinearLayout emailBtn;
public LinearLayout detailBtn;
}
public View getView(int position, View convertView, ViewGroup parent) {
ItemView itemView = null;
if(convertView == null){
convertView = LayoutInflater.from(context).inflate(R.layout.dial_search_item, null);
itemView = new ItemView();
itemView.nameTextView = (TextView)convertView.findViewById(R.id.nameTextView);
itemView.pinyinTextView = (TextView)convertView.findViewById(R.id.pinyinTextView);
itemView.numTextView = (TextView)convertView.findViewById(R.id.numTextView);
itemView.whereTextView = (TextView)convertView.findViewById(R.id.whereTextView);
itemView.shortCutPhone = (ImageView)convertView.findViewById(R.id.shortcutPhone);
itemView.hideLayout=(LinearLayout)convertView.findViewById(R.id.hideLayout);
itemView.callBtn=(LinearLayout)convertView.findViewById(R.id.callBtn);
itemView.msgBtn=(LinearLayout)convertView.findViewById(R.id.msgBtn);
itemView.emailBtn=(LinearLayout)convertView.findViewById(R.id.emailBtn);
itemView.detailBtn=(LinearLayout)convertView.findViewById(R.id.detailBtn);
convertView.setTag(itemView);
}else{
itemView = (ItemView)convertView.getTag();
}
final User u=searchListUser.get(position);
setNameHightLight(itemView.nameTextView,u.getMemberName(),u.getMemberNameNum());
//setPinyinHightLight(itemView.pinyinTextView,u.getMemberName(),u.getMemberNameNum());
setPhoneNumHightLight(itemView.numTextView,keyWord,u);
final String phoneNum=itemView.numTextView.getText().toString();
//image 打电话事件
itemView.shortCutPhone.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String number = phoneNum;
if(! number.equals("")){
try{
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+number));
startActivity(intent);
}catch(Exception e){
e.printStackTrace();
}
}
}
});
//隐藏菜单 打电话按钮
itemView.callBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String number = phoneNum;
if(! number.equals("")){
try{
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+number));
startActivity(intent);
}catch(Exception e){
e.printStackTrace();
}
}
}
});
itemView.msgBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(DialActivity.this,SmsDetialActivity.class);
intent.putExtra("number", phoneNum);
intent.putExtra("DAILNUMBER", DAILNUMBER);
startActivity(intent);
}
});
itemView.emailBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
}
});
itemView.detailBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
app.setEditUser(u);
startActivity(new Intent(DialActivity.this,EditContactActivity.class).putExtra("create",3));
}
});
if(searchCurrentPosition==-1){
itemView.hideLayout.setVisibility(View.GONE);
}else if(position==searchCurrentPosition){
itemView.hideLayout.setVisibility(View.VISIBLE);
}else{
itemView.hideLayout.setVisibility(View.GONE);
}
return convertView;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == DIALDETAIL){
int result = data.getIntExtra("dialBack", 0);
if(result == 1){
app.dbService.initOrRefreshCallRecord();
app.dbService.initOrRefreshMissCall();
app.dbService.initOrRefreshOutCall();
Message msg = new Message();
msg.what = 3;
handler.sendMessage(msg);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
/**
* 设置姓名高亮
* @param tv
* @param text
*/
protected void setNameHightLight(TextView tv,String text,String json){
SpannableStringBuilder style= new SpannableStringBuilder(text);
try{
JSONObject o=new JSONObject(json);
String [] arr2=text.split("");
for(int j=0;j<arr2.length;j++){
String ss=arr2[j];
if(!ss.equals("")){
if(!o.isNull((j-1)+"")){
String value=o.getString((j-1)+"");
if(value.charAt(0)=='1'){
style.setSpan( new ForegroundColorSpan(Color.BLUE),j-1,j,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
}
}catch(Exception e){
e.printStackTrace();
}
tv.setText(style);
}
/**
* 设置搜索拼音文字高亮
* @param tv
* @param text //文字内容
*/
protected void setPinyinHightLight(TextView tv,String text,String json){
String letter=SpellUtils.getFull(text); //获取姓名的全称的拼音
SpannableStringBuilder style= new SpannableStringBuilder(letter);
try{
JSONObject o=new JSONObject(json);
String [] arr2=text.split("");
int length2=arr2.length;
int index=0;
int move=0;
for(int j=0;j<length2;j++){
String ss=arr2[j];
if(j>0){
move=move+SpellUtils.getFull(arr2[j-1]).length();
index=move;
}
if(!ss.equals("")){
if(!o.isNull((j-1)+"")){
String value=o.getString((j-1)+"");
if(value.charAt(0)=='0'){
continue;
}
for(char c:value.toCharArray()){
if(c=='1'){
style.setSpan( new ForegroundColorSpan(Color.BLUE),index,index+1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
index++;
}
}
}
}
}catch(Exception e){
e.printStackTrace();
}
tv.setText(style);
}
/**
* 设置电话号码高亮
* @param tv
* @param keyWord
* @param u
*/
public void setPhoneNumHightLight(TextView tv,String keyWord,User u){
ForeignCollection<UserContent> contents=u.getContents();
if(contents!=null){
for(UserContent content:contents){
if(ActionCode.PHONE_ACTION.equals(content.getContentCategory())){
String num=content.getContentText();
if(num!=null){
if(keyWord.length()>=2){
int start=num.indexOf(keyWord);
if(start!=-1){
int length=keyWord.length();
SpannableStringBuilder style= new SpannableStringBuilder(num);
style.setSpan( new ForegroundColorSpan(Color.BLUE),start,start+length,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(style);
break;
}else{
tv.setText(num);
}
}else{
tv.setText(num);
break;
}
}
}
}
}
}
public class DialPagerAdapter extends PagerAdapter implements OnClickListener {
public List<View> mListViews;
public View v1;
public View v2;
public View v3;
public View v4;
public DialPagerAdapter(List<View> mListViews) {
this.mListViews = mListViews;
getViewClickListener(mListViews);
}
public void getViewClickListener(List<View> listview) {
v1 = listview.get(0);
v2 = listview.get(1);
v3 = listview.get(2);
v4 = listview.get(3);
//所有
dialAllList = (ListView)v1.findViewById(R.id.dial_all_list);
dialAllList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
onClickItem(position,dialAllAdapter);
}
});
dialAllList.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
delType = 1;
return false;
}
});
dialAllList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
OnItemLongClick(allRecordslist,menuInfo, menu);
}
});
//未接
dialMissList = (ListView)v2.findViewById(R.id.dial_miss_list);
dialMissList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
onClickItem(position,dialMissAdapter);
}
});
dialMissList.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent,
View view, int position, long id) {
delType = 2;
return false;
}
});
dialMissList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
OnItemLongClick(missCallsList,menuInfo, menu);
}
});
//已拨打
dialOutList = (ListView)v3.findViewById(R.id.dial_out_list);
dialOutList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
onClickItem(position,dialOutAdapter);
}
});
dialOutList.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent,
View view, int position, long id) {
delType = 3;
return false;
}
});
dialOutList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
OnItemLongClick(outCallsList,menuInfo, menu);
}
});
}
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView(mListViews.get(arg1));
}
public void finishUpdate(View arg0) {
}
@Override
public int getCount() {
return mListViews.size();
}
@Override
public Object instantiateItem(View arg0, int arg1) {
((ViewPager) arg0).addView(mListViews.get(arg1), 0);
if(arg1==0){
System.out.println("allRecordslist :"+allRecordslist.size());
dialAllAdapter = new DialAdapter(DialActivity.this,allRecordslist);
dialAllList.setAdapter(dialAllAdapter);
}else if(arg1 == 1){
dialMissAdapter = new DialAdapter(DialActivity.this,missCallsList);
dialMissList.setAdapter(dialMissAdapter);
}else if(arg1 == 3){
dialOutAdapter = new DialAdapter(DialActivity.this,outCallsList);
dialOutList.setAdapter(dialOutAdapter);
}
return mListViews.get(arg1);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == (arg1);
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View arg0) {
}
public void onClick(View v) {
}
@Override
public int getItemPosition(Object object) {
// TODO Auto-generated method stub
return POSITION_NONE;
}
//单击
public void onClickItem( int position,DialAdapter ad){
DialAdapter tempAdapter;
tempAdapter = ad;
if(currentPosition==position){
currentPosition=-1;
}else{
currentPosition=position;
}
tempAdapter.setCurrentPosition(currentPosition);
tempAdapter.notifyDataSetChanged();
}
public void OnItemLongClick(List<NativeUser> list,ContextMenuInfo menuInfo,ContextMenu menu){
AdapterView.AdapterContextMenuInfo info;
List<NativeUser> uList;
ContextMenuInfo menuInfor;
ContextMenu menus;
menus = menu;
menuInfor = menuInfo;
uList = list;
try{
info =(AdapterView.AdapterContextMenuInfo) menuInfo;
int position = info.position;
NativeUser user = uList.get(position);
menus.setHeaderTitle(user.getPhoneNumber());
menus.add(0, 0, 0, "从通话记录中删除");
menus.add(0, 1, 0, "呼叫前修改号码");
}catch(Exception e){
e.printStackTrace();
}
}
}
public class DialOnPageChangeListener implements OnPageChangeListener {
int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量
int two = one * 2;// 页卡1 -> 页卡3 偏移量
int three = two +bmpW;
public void onPageSelected(int arg0) {
Animation animation = null;
System.out.println("arg0 "+arg0);
System.out.println("currIndex "+currIndex);
switch (arg0) {
case 0:
if (currIndex == 1) {
animation = new TranslateAnimation(one, 0, 0, 0);
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, 0, 0, 0);
}else if (currIndex == 3) {
animation = new TranslateAnimation(three, 0, 0, 0);
}
break;
case 1:
if (currIndex == 0) {
animation = new TranslateAnimation(offset, one, 0, 0);
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, one, 0, 0);
}else if (currIndex == 3) {
animation = new TranslateAnimation(three, one, 0, 0);
}
break;
case 2:
if (currIndex == 0) {
animation = new TranslateAnimation(offset, two, 0, 0);
} else if (currIndex == 1) {
animation = new TranslateAnimation(one, two, 0, 0);
}else if (currIndex == 3) {
animation = new TranslateAnimation(three, two, 0, 0);
}
break;
case 3:
if (currIndex == 0) {
animation = new TranslateAnimation(offset, three, 0, 0);
} else if (currIndex == 1) {
animation = new TranslateAnimation(one, three, 0, 0);
} else if(currIndex == 2){
animation = new TranslateAnimation(two, three, 0, 0);
}
break;
}
currIndex = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(300);
dialImageLay.startAnimation(animation);
}
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
public void onPageScrollStateChanged(int arg0) {
}
}
}
package com.cy.contact.activity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Stack;
import org.json.JSONObject;
import org.json.JSONStringer;
import org.json.JSONTokener;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Matrix;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.text.Editable;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextWatcher;
import android.text.style.ForegroundColorSpan;
import android.util.DisplayMetrics;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.view.View.OnCreateContextMenuListener;
import android.view.View.OnTouchListener;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import com.cy.contact.activity.tool.DialAdapter;
import com.cy.contact.dao.NativeCallDao;
import com.cy.contact.dao.UserDao;
import com.cy.contact.pojo.NativeUser;
import com.cy.contact.pojo.User;
import com.cy.contact.pojo.UserContent;
import com.cy.contact.usercontent.action.ActionCode;
import com.cy.contact.util.SpellUtils;
import com.j256.ormlite.dao.ForeignCollection;
/**
* 警务通讯录 拨号界面
* @author yutao
*
*/
public class DialActivity extends ToolBarActivity implements OnClickListener{
//数字功能键
private RelativeLayout dialLayout;
private Button num0Btn,num1Btn,num2Btn,
num3Btn,num4Btn,num5Btn,num6Btn,
num7Btn,num8Btn,num9Btn,numStarBtn,
numPoundBtn,allRecordBtn,noCallBtn;
private Button delNumBtn;
private TextView inputBtn;
//private ListView callLogListView;
private ListView dialAllList;
private ListView dialAlreadyList;
private ListView dialOutList;
private ListView dialMissList;
private DialAdapter dialAllAdapter;
private DialAdapter dialAlreadyAdapter;
private DialAdapter dialMissAdapter;
private DialAdapter dialOutAdapter;
private ListView contactListView; //显示搜索联系人
private int currentPosition=-1; //记录通话记录点击的位置
private int searchCurrentPosition=-1; //记录T9键盘搜索联系人点击位置
private SearchContactAdapter searchAdapter; //显示联系人适配器
//private CallLogAdapter callLogAdapter; //通话记录数据适配器
private List<NativeUser> allRecordslist = new ArrayList<NativeUser>();
private List<NativeUser> missCallsList=new ArrayList<NativeUser>();
private List<NativeUser> outCallsList=new ArrayList<NativeUser>();
private List<NativeUser> listRecords=new ArrayList<NativeUser>();
Stack<String> myStack=new Stack<String>();
private static final String DAILNUMBER="dail";
private String keyWord=null; //当前搜索关键字
private NativeCallDao nadao =null;
private UserDao udao=null;
private int callStatusFlag=0; //为true时表示显示全部通话记录状态,false时显示未接电话
private int DIALDETAIL = 1; //通话记录返回状态
private int delType = 0; //设置需要删除通话记录的类别
private RelativeLayout searchLayout; //搜索界面布局 默认为invisiable
private LinearLayout searchBtnlayout; //搜索界面下按钮布局
private Button newContactBtn,saveToHaveBtn,sendMsgBtn; //新建联系人, 保存到已有,发送短信
private List<User> searchListUser=new ArrayList<User>(); //搜索联系人数据
//viewPager用到变量
private RelativeLayout dialPage;//viewpager和选项卡 的界面
private RelativeLayout dialImageLay;
private ViewPager mPager;// ViewPager内容
private List<View> listViews; // Tab页面列表
private ImageView cursor;// 动画图片
private TextView t1, t2, t3,t4;// 页卡头标
private int offset = 0;// 动画图片偏移量
private int currIndex = 0;// 当前页卡编号
private int bmpW;// 动画图片宽度
DialPagerAdapter adapter;
LayoutInflater mInflater;
private Handler handler =new Handler(){
@Override
public void handleMessage(Message msg) {
switch(msg.what){
case 1:
initData();
break;
case 2:
initData();
break;
case 3:
initData();
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dial_layout);
nadao = NativeCallDao.getInstance(this);
udao=UserDao.getInstance(this);
initView();
initData();
//registerCllBroadCast();
initImageView();
initTextView();
initPageView();
}
private void initPageView() {
mInflater = getLayoutInflater();
listViews = new ArrayList<View>();
listViews.add(mInflater.inflate(R.layout.dial_all_layout, null));
listViews.add(mInflater.inflate(R.layout.dial_miss_layout, null));
listViews.add(mInflater.inflate(R.layout.dial_out_layout, null));
listViews.add(mInflater.inflate(R.layout.dial_already_layout, null));
adapter = new DialPagerAdapter(listViews);
mPager = (ViewPager) findViewById(R.id.page);
mPager.setAdapter(adapter);
mPager.setCurrentItem(0);
mPager.setOnPageChangeListener(new DialOnPageChangeListener());
}
private void initTextView() {
t1 = (TextView) findViewById(R.id.tab1);
t2 = (TextView) findViewById(R.id.tab2);
t3 = (TextView) findViewById(R.id.tab3);
t4 = (TextView) findViewById(R.id.tab4);
t1.setOnClickListener(new MyOnClickListener(0));
t2.setOnClickListener(new MyOnClickListener(1));
t3.setOnClickListener(new MyOnClickListener(2));
t4.setOnClickListener(new MyOnClickListener(3));
}
private void initImageView() {
cursor = (ImageView) findViewById(R.id.cursor);
dialImageLay = (RelativeLayout) findViewById(R.id.dialImageLay);
bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.ok)
.getWidth();
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenW = dm.widthPixels;
offset = (screenW / 4 - bmpW) / 2;
cursor.setBackgroundResource(R.drawable.ok);
dialImageLay.setPadding(offset, 0, 0, 0);
}
public class MyOnClickListener implements View.OnClickListener {
private int index = 0;
public MyOnClickListener(int i) {
index = i;
}
public void onClick(View v) {
// TODO Auto-generated method stub
mPager.setCurrentItem(index);
}
}
/**
* 刷新数据
*/
/*public void initData(){
handler.postDelayed(new Runnable(){
public void run() {
allRecordslist=app.dbService.getListCall();
missCallsList=app.dbService.getMissCallsList();
}
}, 100);
}*/
public void initData(){
new Runnable(){
public void run() {
allRecordslist.clear();
missCallsList.clear();
outCallsList.clear();
List<NativeUser> la = app.dbService.getListCall();
List<NativeUser> lm = app.dbService.getMissCallsList();
List<NativeUser> lo = app.dbService.getOutCallsList();
allRecordslist.addAll(la);
missCallsList.addAll(lm);
outCallsList.addAll(lo);
System.out.println("outCallsList "+outCallsList.size());
System.out.println("lo "+lo.size());
}
}.run();
}
public void registerCllBroadCast(){
IntentFilter callFilter = new IntentFilter();
callFilter.addAction(app.UPDATE_CALL);
registerReceiver(callBrodcastResever, callFilter);
}
private BroadcastReceiver callBrodcastResever = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action == app.UPDATE_CALL){
app.dbService.initOrRefreshCallRecord();
app.dbService.initOrRefreshMissCall();
app.dbService.initOrRefreshOutCall();
initData();
}
}
};
/**
* 显示拨号键盘
*/
public void showDialLayout(){
if(dialLayout.getVisibility()==View.VISIBLE){
dialLayout.setVisibility(View.INVISIBLE);
}else{
dialLayout.setVisibility(View.VISIBLE);
}
}
/**
* 通话记录数据适配器
* @author yutao
*
*/
/*class CallLogAdapter extends BaseAdapter{
private Context context;
public CallLogAdapter(Context context){
this.context = context;
}
public int getCount() {
return listRecords.size();
}
public Object getItem(int position) {
return listRecords.get(position);
}
public long getItemId(int position) {
return position;
}
class ItemView{
public ImageView seeImageView;
public ImageView callImageView;
public TextView numberText;
public TextView nameText;
public TextView timesText;
public TextView dateText;
public LinearLayout callPhone;
public LinearLayout message;
public LinearLayout dailMail;
public LinearLayout callrecord;
public LinearLayout callLogHide;
}
HashMap<Integer,View> lamp =new HashMap<Integer,View>();
public View getView(int position, View convertView, ViewGroup parent) {
View view;
ItemView itemView = null;
if(lamp.get(position) == null){
convertView = LayoutInflater.from(context).inflate(R.layout.list_calllog, null);
itemView = new ItemView();
itemView.seeImageView = (ImageView)convertView.findViewById(R.id.incallLogImage);
itemView.callImageView = (ImageView)convertView.findViewById(R.id.shortcut_phone);
itemView.numberText = (TextView)convertView.findViewById(R.id.callLognumber);
itemView.nameText = (TextView)convertView.findViewById(R.id.callLogName);
itemView.timesText = (TextView)convertView.findViewById(R.id.callLogTimes);
itemView.dateText = (TextView)convertView.findViewById(R.id.callLogdate);
itemView.callPhone = (LinearLayout)convertView.findViewById(R.id.callPhonelayout);
itemView.message = (LinearLayout)convertView.findViewById(R.id.smsMessage);
itemView.dailMail = (LinearLayout)convertView.findViewById(R.id.dail_email);
itemView.callrecord = (LinearLayout)convertView.findViewById(R.id.callrecord);
itemView.callLogHide=(LinearLayout)convertView.findViewById(R.id.callLogHide);
convertView.setTag(itemView);
}else{
view = lamp.get(position);
itemView = (ItemView)view.getTag();
}
final NativeUser user = listRecords.get(position);
if(user.getType()==3){
if(user.getUserName() ==null){
itemView.nameText.setTextColor(getResources().getColor(R.color.miss_dial_color));
itemView.nameText.setText("未知");
}else{
itemView.nameText.setText(user.getUserName());
itemView.nameText.setTextColor(getResources().getColor(R.color.miss_dial_color));
}
itemView.numberText.setText(user.getPhoneNumber());
itemView.dateText.setText(user.getCtreatTime());
itemView.timesText.setText("("+user.getCount()+")");
itemView.numberText.setTextColor(getResources().getColor(R.color.miss_dial_color));
itemView.dateText.setTextColor(getResources().getColor(R.color.miss_dial_color));
itemView.timesText.setTextColor(getResources().getColor(R.color.miss_dial_color));
}else{
if(user.getUserName() ==null){
itemView.nameText.setText("未知");
}else{
itemView.nameText.setText(user.getUserName());
}
itemView.numberText.setText(user.getPhoneNumber());
itemView.dateText.setText(user.getCtreatTime());
itemView.timesText.setText("("+user.getCount()+")");
}
if(currentPosition==-1){
itemView.callLogHide.setVisibility(View.GONE);
itemView.callImageView.setVisibility(View.VISIBLE);
}else if(position==currentPosition){
itemView.callLogHide.setVisibility(View.VISIBLE);
itemView.callImageView.setVisibility(View.GONE);
}else{
itemView.callLogHide.setVisibility(View.GONE);
itemView.callImageView.setVisibility(View.VISIBLE);
}
//image 打电话事件
itemView.callImageView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String number = user.getPhoneNumber();
if(! number.equals("")){
try{
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+number));
startActivity(intent);
}catch(Exception e){
e.printStackTrace();
}
}
}
});
//layout 打电话事件
itemView.callPhone.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String number = user.getPhoneNumber();
if(! number.equals("")){
try{
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));
startActivity(intent);
}catch(Exception e){
e.printStackTrace();
}
}
}
});
//发送短信事件
itemView.message.setOnClickListener(new OnClickListener() {
String number = user.getPhoneNumber();
public void onClick(View v) {
Intent intent = new Intent(DialActivity.this,SmsDetialActivity.class);
intent.putExtra("number", number);
intent.putExtra("DAILNUMBER", DAILNUMBER);
startActivity(intent);
}
});
//通话记录详情
itemView.callrecord.setOnClickListener(new OnClickListener() {
String number = user.getPhoneNumber();
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("number", number);
intent.putExtra("name", user.getUserName());
intent.setClass(DialActivity.this, DialRecordListAcitvity.class);
startActivityForResult(intent, DIALDETAIL);
}
});
return convertView;
}
}*/
public void initView(){
dialLayout=(RelativeLayout)findViewById(R.id.dialLayout);
num0Btn=(Button)findViewById(R.id.num0Btn);
num0Btn.setOnClickListener(this);
num1Btn=(Button)findViewById(R.id.num1Btn);
num1Btn.setOnClickListener(this);
num2Btn=(Button)findViewById(R.id.num2Btn);
num2Btn.setOnClickListener(this);
num3Btn=(Button)findViewById(R.id.num3Btn);
num3Btn.setOnClickListener(this);
num4Btn=(Button)findViewById(R.id.num4Btn);
num4Btn.setOnClickListener(this);
num5Btn=(Button)findViewById(R.id.num5Btn);
num5Btn.setOnClickListener(this);
num6Btn=(Button)findViewById(R.id.num6Btn);
num6Btn.setOnClickListener(this);
num7Btn=(Button)findViewById(R.id.num7Btn);
num7Btn.setOnClickListener(this);
num8Btn=(Button)findViewById(R.id.num8Btn);
num8Btn.setOnClickListener(this);
num9Btn=(Button)findViewById(R.id.num9Btn);
num9Btn.setOnClickListener(this);
numStarBtn=(Button)findViewById(R.id.numStarBtn);
numStarBtn.setOnClickListener(this);
numPoundBtn=(Button)findViewById(R.id.numPoundBtn);
numPoundBtn.setOnClickListener(this);
inputBtn=(TextView)findViewById(R.id.inputBtn);
inputBtn.setOnClickListener(this);
inputBtn.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
keyWord=s.toString();
if(keyWord.equals("")){ //拨号盘没有内容时,隐藏联系人ListView
searchLayout.setVisibility(View.INVISIBLE);
main.hideDialLayout();
}else{
callStatusFlag=3;
handler.postDelayed(new Runnable(){
public void run() {
searchByKeyword(keyWord);
}
},10);
main.showDialLayout();
if(searchLayout.getVisibility()==View.INVISIBLE){
searchLayout.setVisibility(View.VISIBLE);
}
}
}
});
delNumBtn=(Button)findViewById(R.id.delNumBtn);
delNumBtn.setOnClickListener(this);
allRecordBtn=(Button)findViewById(R.id.dial_allrecord_btn);
allRecordBtn.setOnClickListener(new MyOnClickListener(0));
noCallBtn = (Button)findViewById(R.id.dial_norecord_btn);
noCallBtn.setOnClickListener(new MyOnClickListener(1));
dialPage = (RelativeLayout)findViewById(R.id.dialPage);
//通话记录listView
/* callLogListView = (ListView)findViewById(R.id.phoneRecordView);//
callLogAdapter = new CallLogAdapter(this);
callLogListView.setAdapter(callLogAdapter);
*/
//点击隐藏键盘
dialPage.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(dialLayout.isShown()){
dialLayout.setVisibility(View.INVISIBLE);
}
return false;
}
});
/*//单击按钮用来隐藏listViewITem 项
callLogListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if( position != currentPosition ){
currentPosition = position;
}else{
currentPosition = -1;
}
callLogAdapter.notifyDataSetChanged();
}
});
//长按
callLogListView.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
return false;
}
});
*/
searchLayout=(RelativeLayout) findViewById(R.id.searchLayout);//搜索联系人
searchBtnlayout=(LinearLayout) findViewById(R.id.searchBtnlayout);
newContactBtn=(Button) findViewById(R.id.newContachBtn);
newContactBtn.setOnClickListener(this);
saveToHaveBtn=(Button) findViewById(R.id.saveToHaveBtn);
saveToHaveBtn.setOnClickListener(this);
sendMsgBtn=(Button) findViewById(R.id.sendMsgBtn);
sendMsgBtn.setOnClickListener(this);
//搜索显示联系人
contactListView=(ListView)findViewById(R.id.contactListView);
searchAdapter=new SearchContactAdapter(this);
contactListView.setAdapter(searchAdapter);
contactListView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(dialLayout.isShown()){
dialLayout.setVisibility(View.INVISIBLE);
}
return false;
}
});
//取得搜索Position
contactListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if(position != searchCurrentPosition){
searchCurrentPosition = position;
}else{
searchCurrentPosition = -1;
}
searchAdapter.notifyDataSetChanged();
}
});
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo menuInfo;
menuInfo = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
int position = menuInfo.position;
System.out.println("delType :"+delType);
if(delType ==1){
final NativeUser user = allRecordslist.get(position);
switch(item.getItemId()){
case 0: //删除通话记录
handler.post(new Runnable(){
public void run(){
allRecordslist.clear();
nadao.delCallRecord(user.getPhoneNumber());
app.dbService.initOrRefreshCallRecord();
app.dbService.initOrRefreshMissCall();
app.dbService.initOrRefreshOutCall();
initData();
//allRecordslist=app.dbService.getListCall();
dialAllAdapter.notifyDataSetChanged();
adapter.notifyDataSetChanged();
}
});
break;
case 1:
final EditText ed = new EditText(this);
ed.setText(user.getPhoneNumber());
new AlertDialog.Builder(this).setTitle("编辑号码")
.setView(ed).setPositiveButton("呼叫", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String number = ed.getText().toString();
if(! number.equals("")){
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));
startActivity(intent);
}
}
})
.setNegativeButton("取消", null).show();
break;
}
}else if(delType == 2){
final NativeUser user = missCallsList.get(position);
switch(item.getItemId()){
case 0: //删除通话记录
handler.post(new Runnable(){
public void run(){
missCallsList.clear();
nadao.delCallRecord(user.getPhoneNumber());
app.dbService.initOrRefreshCallRecord();
app.dbService.initOrRefreshMissCall();
app.dbService.initOrRefreshOutCall();
initData();
//missCallsList=app.dbService.getMissCallsList();
dialMissAdapter.notifyDataSetChanged();
adapter.notifyDataSetChanged();
}
});
break;
case 1:
final EditText ed = new EditText(this);
ed.setText(user.getPhoneNumber());
new AlertDialog.Builder(this).setTitle("编辑号码")
.setView(ed).setPositiveButton("呼叫", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String number = ed.getText().toString();
if(! number.equals("")){
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));
startActivity(intent);
}
}
})
.setNegativeButton("取消", null).show();
break;
}
}else if(delType == 3){
final NativeUser user = outCallsList.get(position);
switch(item.getItemId()){
case 0: //删除通话记录
handler.post(new Runnable(){
public void run(){
outCallsList.clear();
nadao.delCallRecord(user.getPhoneNumber());
app.dbService.initOrRefreshCallRecord();
app.dbService.initOrRefreshMissCall();
app.dbService.initOrRefreshOutCall();
initData();
//missCallsList=app.dbService.getMissCallsList();
dialOutAdapter.notifyDataSetChanged();
adapter.notifyDataSetChanged();
}
});
break;
case 1:
final EditText ed = new EditText(this);
ed.setText(user.getPhoneNumber());
new AlertDialog.Builder(this).setTitle("编辑号码")
.setView(ed).setPositiveButton("呼叫", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String number = ed.getText().toString();
if(! number.equals("")){
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));
startActivity(intent);
}
}
})
.setNegativeButton("取消", null).show();
break;
}
}
return super.onContextItemSelected(item);
}
/**
* 根据关键字搜索
* @param keyWord
*/
public void searchByKeyword(String keyWord){
if(keyWord!=null){
if(!keyWord.equals("")){
if(searchLayout.getVisibility()==View.INVISIBLE||searchLayout.getVisibility()==View.GONE){
dialPage.setVisibility(View.INVISIBLE);
searchLayout.setVisibility(View.VISIBLE);
}
searchListUser.clear();
searchListUser=udao.getListUserByT9Num(keyWord);
if(searchListUser.size()==0){
searchBtnlayout.setVisibility(View.VISIBLE);
}else{
searchBtnlayout.setVisibility(View.GONE);
searchAdapter.notifyDataSetChanged();
}
}else{
searchLayout.setVisibility(View.INVISIBLE);
if(dialPage.getVisibility()==View.INVISIBLE){
dialPage.setVisibility(View.VISIBLE);
searchLayout.setVisibility(View.INVISIBLE);
}
}
}
}
public void onClick(View v) {
switch(v.getId()){
case R.id.num0Btn:
myStack.add("0");
break;
case R.id.num1Btn:
myStack.add("1");
break;
case R.id.num2Btn:
myStack.add("2");
break;
case R.id.num3Btn:
myStack.add("3");
break;
case R.id.num4Btn:
myStack.add("4");
break;
case R.id.num5Btn:
myStack.add("5");
break;
case R.id.num6Btn:
myStack.add("6");
break;
case R.id.num7Btn:
myStack.add("7");
break;
case R.id.num8Btn:
myStack.add("8");
break;
case R.id.num9Btn:
myStack.add("9");
break;
case R.id.numStarBtn:
myStack.add("*");
break;
case R.id.numPoundBtn:
myStack.add("#");
break;
case R.id.delNumBtn:
if(!myStack.isEmpty()){
myStack.pop();
}
break;
case R.id.inputBtn:
String phoneNumber=getStackText();
if(!phoneNumber.equals("")){
try{
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNumber));
startActivity(intent);
}catch(Exception e){
e.printStackTrace();
}
}
break;
/*case R.id.dial_allrecord_btn: //全部电话记录
if(searchLayout.getVisibility()==View.VISIBLE){
searchLayout.setVisibility(View.INVISIBLE);
}
if(callLogListView.getVisibility()==View.INVISIBLE){
callLogListView.setVisibility(View.VISIBLE);
}
if(callStatusFlag==0){
return;
}
callStatusFlag=0;
listRecords.clear();
listRecords.addAll(allRecordslist);
callLogAdapter.notifyDataSetChanged();
break;
case R.id.dial_norecord_btn: //未接电话
if(searchLayout.getVisibility()==View.VISIBLE){
searchLayout.setVisibility(View.INVISIBLE);
}
if(callLogListView.getVisibility()==View.INVISIBLE){
callLogListView.setVisibility(View.VISIBLE);
}
if(callStatusFlag==1){
return;
}
callStatusFlag=1;
listRecords.clear();
listRecords.addAll(missCallsList);
callLogAdapter.notifyDataSetChanged();
break;*/
case R.id.newContachBtn: //新建联系人
User u=new User();
UserContent content=new UserContent();
content.setContentCategory(ActionCode.PHONE_ACTION);
content.setContentText(getStackText());
u.getListContent().add(content);
app.setEditUser(u);
startActivity(new Intent(DialActivity.this,EditContactActivity.class).putExtra("create",1));
break;
case R.id.saveToHaveBtn: //保存到已有
startActivity(new Intent(DialActivity.this,SelectContactsActivity.class).putExtra("actionCode",1).putExtra("data", getStackText()));
break;
case R.id.sendMsgBtn: //发送短信
Intent intentsms = new Intent(Intent.ACTION_VIEW);
intentsms.putExtra("sms_body","");
intentsms.putExtra("address",getStackText());
intentsms.setType("vnd.android-dir/mms-sms");
startActivity(intentsms);
break;
default:
break;
}
setInputBtnText();
}
public void setInputBtnText(){
String s=getStackText();
inputBtn.setText(s);
}
/**
* 获取栈内容
* @return
*/
public String getStackText(){
Iterator iter=myStack.iterator();
StringBuffer sb=new StringBuffer();
while(iter.hasNext()){
String s=(String) iter.next();
sb.append(s);
}
return sb.toString();
}
class SearchContactAdapter extends BaseAdapter{
private Context context;
public SearchContactAdapter(Context context){
this.context=context;
}
public int getCount() {
return searchListUser.size();
}
public Object getItem(int position) {
return searchListUser.get(position);
}
public long getItemId(int position) {
return position;
}
class ItemView{
public TextView nameTextView; //姓名
public TextView pinyinTextView; //拼音
public TextView numTextView; //电话号码
public TextView whereTextView; //归属地
public ImageView shortCutPhone; //打电话
public LinearLayout hideLayout; //隐藏视图
public LinearLayout callBtn;
public LinearLayout msgBtn;
public LinearLayout emailBtn;
public LinearLayout detailBtn;
}
public View getView(int position, View convertView, ViewGroup parent) {
ItemView itemView = null;
if(convertView == null){
convertView = LayoutInflater.from(context).inflate(R.layout.dial_search_item, null);
itemView = new ItemView();
itemView.nameTextView = (TextView)convertView.findViewById(R.id.nameTextView);
itemView.pinyinTextView = (TextView)convertView.findViewById(R.id.pinyinTextView);
itemView.numTextView = (TextView)convertView.findViewById(R.id.numTextView);
itemView.whereTextView = (TextView)convertView.findViewById(R.id.whereTextView);
itemView.shortCutPhone = (ImageView)convertView.findViewById(R.id.shortcutPhone);
itemView.hideLayout=(LinearLayout)convertView.findViewById(R.id.hideLayout);
itemView.callBtn=(LinearLayout)convertView.findViewById(R.id.callBtn);
itemView.msgBtn=(LinearLayout)convertView.findViewById(R.id.msgBtn);
itemView.emailBtn=(LinearLayout)convertView.findViewById(R.id.emailBtn);
itemView.detailBtn=(LinearLayout)convertView.findViewById(R.id.detailBtn);
convertView.setTag(itemView);
}else{
itemView = (ItemView)convertView.getTag();
}
final User u=searchListUser.get(position);
setNameHightLight(itemView.nameTextView,u.getMemberName(),u.getMemberNameNum());
//setPinyinHightLight(itemView.pinyinTextView,u.getMemberName(),u.getMemberNameNum());
setPhoneNumHightLight(itemView.numTextView,keyWord,u);
final String phoneNum=itemView.numTextView.getText().toString();
//image 打电话事件
itemView.shortCutPhone.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String number = phoneNum;
if(! number.equals("")){
try{
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+number));
startActivity(intent);
}catch(Exception e){
e.printStackTrace();
}
}
}
});
//隐藏菜单 打电话按钮
itemView.callBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String number = phoneNum;
if(! number.equals("")){
try{
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+number));
startActivity(intent);
}catch(Exception e){
e.printStackTrace();
}
}
}
});
itemView.msgBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(DialActivity.this,SmsDetialActivity.class);
intent.putExtra("number", phoneNum);
intent.putExtra("DAILNUMBER", DAILNUMBER);
startActivity(intent);
}
});
itemView.emailBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
}
});
itemView.detailBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
app.setEditUser(u);
startActivity(new Intent(DialActivity.this,EditContactActivity.class).putExtra("create",3));
}
});
if(searchCurrentPosition==-1){
itemView.hideLayout.setVisibility(View.GONE);
}else if(position==searchCurrentPosition){
itemView.hideLayout.setVisibility(View.VISIBLE);
}else{
itemView.hideLayout.setVisibility(View.GONE);
}
return convertView;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == DIALDETAIL){
int result = data.getIntExtra("dialBack", 0);
if(result == 1){
app.dbService.initOrRefreshCallRecord();
app.dbService.initOrRefreshMissCall();
app.dbService.initOrRefreshOutCall();
Message msg = new Message();
msg.what = 3;
handler.sendMessage(msg);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
/**
* 设置姓名高亮
* @param tv
* @param text
*/
protected void setNameHightLight(TextView tv,String text,String json){
SpannableStringBuilder style= new SpannableStringBuilder(text);
try{
JSONObject o=new JSONObject(json);
String [] arr2=text.split("");
for(int j=0;j<arr2.length;j++){
String ss=arr2[j];
if(!ss.equals("")){
if(!o.isNull((j-1)+"")){
String value=o.getString((j-1)+"");
if(value.charAt(0)=='1'){
style.setSpan( new ForegroundColorSpan(Color.BLUE),j-1,j,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
}
}catch(Exception e){
e.printStackTrace();
}
tv.setText(style);
}
/**
* 设置搜索拼音文字高亮
* @param tv
* @param text //文字内容
*/
protected void setPinyinHightLight(TextView tv,String text,String json){
String letter=SpellUtils.getFull(text); //获取姓名的全称的拼音
SpannableStringBuilder style= new SpannableStringBuilder(letter);
try{
JSONObject o=new JSONObject(json);
String [] arr2=text.split("");
int length2=arr2.length;
int index=0;
int move=0;
for(int j=0;j<length2;j++){
String ss=arr2[j];
if(j>0){
move=move+SpellUtils.getFull(arr2[j-1]).length();
index=move;
}
if(!ss.equals("")){
if(!o.isNull((j-1)+"")){
String value=o.getString((j-1)+"");
if(value.charAt(0)=='0'){
continue;
}
for(char c:value.toCharArray()){
if(c=='1'){
style.setSpan( new ForegroundColorSpan(Color.BLUE),index,index+1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
index++;
}
}
}
}
}catch(Exception e){
e.printStackTrace();
}
tv.setText(style);
}
/**
* 设置电话号码高亮
* @param tv
* @param keyWord
* @param u
*/
public void setPhoneNumHightLight(TextView tv,String keyWord,User u){
ForeignCollection<UserContent> contents=u.getContents();
if(contents!=null){
for(UserContent content:contents){
if(ActionCode.PHONE_ACTION.equals(content.getContentCategory())){
String num=content.getContentText();
if(num!=null){
if(keyWord.length()>=2){
int start=num.indexOf(keyWord);
if(start!=-1){
int length=keyWord.length();
SpannableStringBuilder style= new SpannableStringBuilder(num);
style.setSpan( new ForegroundColorSpan(Color.BLUE),start,start+length,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(style);
break;
}else{
tv.setText(num);
}
}else{
tv.setText(num);
break;
}
}
}
}
}
}
public class DialPagerAdapter extends PagerAdapter implements OnClickListener {
public List<View> mListViews;
public View v1;
public View v2;
public View v3;
public View v4;
public DialPagerAdapter(List<View> mListViews) {
this.mListViews = mListViews;
getViewClickListener(mListViews);
}
public void getViewClickListener(List<View> listview) {
v1 = listview.get(0);
v2 = listview.get(1);
v3 = listview.get(2);
v4 = listview.get(3);
//所有
dialAllList = (ListView)v1.findViewById(R.id.dial_all_list);
dialAllList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
onClickItem(position,dialAllAdapter);
}
});
dialAllList.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
delType = 1;
return false;
}
});
dialAllList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
OnItemLongClick(allRecordslist,menuInfo, menu);
}
});
//未接
dialMissList = (ListView)v2.findViewById(R.id.dial_miss_list);
dialMissList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
onClickItem(position,dialMissAdapter);
}
});
dialMissList.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent,
View view, int position, long id) {
delType = 2;
return false;
}
});
dialMissList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
OnItemLongClick(missCallsList,menuInfo, menu);
}
});
//已拨打
dialOutList = (ListView)v3.findViewById(R.id.dial_out_list);
dialOutList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
onClickItem(position,dialOutAdapter);
}
});
dialOutList.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent,
View view, int position, long id) {
delType = 3;
return false;
}
});
dialOutList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
OnItemLongClick(outCallsList,menuInfo, menu);
}
});
}
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView(mListViews.get(arg1));
}
public void finishUpdate(View arg0) {
}
@Override
public int getCount() {
return mListViews.size();
}
@Override
public Object instantiateItem(View arg0, int arg1) {
((ViewPager) arg0).addView(mListViews.get(arg1), 0);
if(arg1==0){
System.out.println("allRecordslist :"+allRecordslist.size());
dialAllAdapter = new DialAdapter(DialActivity.this,allRecordslist);
dialAllList.setAdapter(dialAllAdapter);
}else if(arg1 == 1){
dialMissAdapter = new DialAdapter(DialActivity.this,missCallsList);
dialMissList.setAdapter(dialMissAdapter);
}else if(arg1 == 3){
dialOutAdapter = new DialAdapter(DialActivity.this,outCallsList);
dialOutList.setAdapter(dialOutAdapter);
}
return mListViews.get(arg1);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == (arg1);
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View arg0) {
}
public void onClick(View v) {
}
@Override
public int getItemPosition(Object object) {
// TODO Auto-generated method stub
return POSITION_NONE;
}
//单击
public void onClickItem( int position,DialAdapter ad){
DialAdapter tempAdapter;
tempAdapter = ad;
if(currentPosition==position){
currentPosition=-1;
}else{
currentPosition=position;
}
tempAdapter.setCurrentPosition(currentPosition);
tempAdapter.notifyDataSetChanged();
}
public void OnItemLongClick(List<NativeUser> list,ContextMenuInfo menuInfo,ContextMenu menu){
AdapterView.AdapterContextMenuInfo info;
List<NativeUser> uList;
ContextMenuInfo menuInfor;
ContextMenu menus;
menus = menu;
menuInfor = menuInfo;
uList = list;
try{
info =(AdapterView.AdapterContextMenuInfo) menuInfo;
int position = info.position;
NativeUser user = uList.get(position);
menus.setHeaderTitle(user.getPhoneNumber());
menus.add(0, 0, 0, "从通话记录中删除");
menus.add(0, 1, 0, "呼叫前修改号码");
}catch(Exception e){
e.printStackTrace();
}
}
}
public class DialOnPageChangeListener implements OnPageChangeListener {
int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量
int two = one * 2;// 页卡1 -> 页卡3 偏移量
int three = two +bmpW;
public void onPageSelected(int arg0) {
Animation animation = null;
System.out.println("arg0 "+arg0);
System.out.println("currIndex "+currIndex);
switch (arg0) {
case 0:
if (currIndex == 1) {
animation = new TranslateAnimation(one, 0, 0, 0);
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, 0, 0, 0);
}else if (currIndex == 3) {
animation = new TranslateAnimation(three, 0, 0, 0);
}
break;
case 1:
if (currIndex == 0) {
animation = new TranslateAnimation(offset, one, 0, 0);
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, one, 0, 0);
}else if (currIndex == 3) {
animation = new TranslateAnimation(three, one, 0, 0);
}
break;
case 2:
if (currIndex == 0) {
animation = new TranslateAnimation(offset, two, 0, 0);
} else if (currIndex == 1) {
animation = new TranslateAnimation(one, two, 0, 0);
}else if (currIndex == 3) {
animation = new TranslateAnimation(three, two, 0, 0);
}
break;
case 3:
if (currIndex == 0) {
animation = new TranslateAnimation(offset, three, 0, 0);
} else if (currIndex == 1) {
animation = new TranslateAnimation(one, three, 0, 0);
} else if(currIndex == 2){
animation = new TranslateAnimation(two, three, 0, 0);
}
break;
}
currIndex = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(300);
dialImageLay.startAnimation(animation);
}
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
public void onPageScrollStateChanged(int arg0) {
}
}
}