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

标题: [教学] Android getListView setOnItemLongClickListener longer duration display [打印本页]

作者: 资讯王    时间: 2015-1-19 22:05
标题: [教学] Android getListView setOnItemLongClickListener longer duration display
[教学] 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. }
复制代码





欢迎光临 大马资讯论坛 - 马来西亚中文资讯平台 (http://freeinfo.com.my/) Powered by Discuz! X3.3