大马资讯论坛 - 马来西亚中文资讯平台

 找回密码
 注册
搜索

[教学] Android getListView setOnItemLongClickListener longer duration display

[复制链接]
发表于 2015-1-19 22:05:31 | 显示全部楼层 |阅读模式
[教学] Android getListView setOnItemLongClickListener longer duration display
让Toast显示更久,只需加timer

Longer than Toast.LENGTH_SHORT and  Toast.LENGTH_LONG


  1. private Toast toast;
  2. private static CountDownTimer timer =null;

  3. @Override
  4. public void onActivityCreated(Bundle savedInstanceState) {
  5.         super.onActivityCreated(savedInstanceState);
  6.        
  7.         getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
  8.                 @Override
  9.                 public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
  10.                                 int pos, long id) {
  11.                         // TODO Auto-generated method stub
  12.                         if(toast != null)
  13.                         {
  14.                                 timer.cancel();
  15.                                 toast.cancel();
  16.                         }
  17.                                
  18.                         toast= Toast.makeText(activity, oNewsItems.get(pos).news_desc, Toast.LENGTH_LONG);
  19.                         toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL, 0, 0);
  20.                         LinearLayout toastLayout = (LinearLayout) toast.getView();
  21.                         TextView toastTV = (TextView) toastLayout.getChildAt(0);
  22.                         toastTV.setTextSize(TypedValue.COMPLEX_UNIT_PX, activity.getResources().getDimensionPixelSize(R.dimen.normal_font_size));
  23.                         toast.show();
  24.                          //Log.v("long clicked","pos: " + pos);
  25.                         timer =new CountDownTimer(10000, 1000) //5sec
  26.                         {
  27.                                 public void onTick(long millisUntilFinished)
  28.                                 {
  29.                                         toast.show();
  30.                                 }
  31.                                 public void onFinish()
  32.                                 {
  33.                                         toast.cancel();
  34.                                 }
  35.                        
  36.                         }.start();

  37.                         return true;
  38.                 }
  39.         });
  40. }       

  41. @Override
  42. public void onListItemClick(ListView listView, View view, int position,
  43.                 long id) {

  44.         if(toast != null)
  45.         {
  46.                 timer.cancel();
  47.                 toast.cancel();
  48.         }
  49.        
  50.         Intent myIntent = new Intent(getActivity(), Frm_news_activity.class);
  51.         myIntent.putExtra("oNewsItem", oNewsItems.get(position));
  52.         startActivity(myIntent);
  53. }
复制代码

手机版|大马资讯论坛  

GMT+8, 2024-3-28 23:50 , Processed in 0.119675 second(s), 13 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表