资讯王 发表于 2015-1-19 22:05:31

[教学] Android getListView setOnItemLongClickListener longer duration display

[教学] Android getListView setOnItemLongClickListener longer duration display
让Toast显示更久,只需加timer

Longer than Toast.LENGTH_SHORT andToast.LENGTH_LONG


private Toast toast;
private static CountDownTimer timer =null;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
       
        getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
                @Override
                public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                                int pos, long id) {
                        // TODO Auto-generated method stub
                        if(toast != null)
                        {
                                timer.cancel();
                                toast.cancel();
                        }
                               
                        toast= Toast.makeText(activity, oNewsItems.get(pos).news_desc, Toast.LENGTH_LONG);
                        toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL, 0, 0);
                        LinearLayout toastLayout = (LinearLayout) toast.getView();
                        TextView toastTV = (TextView) toastLayout.getChildAt(0);
                        toastTV.setTextSize(TypedValue.COMPLEX_UNIT_PX, activity.getResources().getDimensionPixelSize(R.dimen.normal_font_size));
                        toast.show();
                       //Log.v("long clicked","pos: " + pos);
                        timer =new CountDownTimer(10000, 1000) //5sec
                        {
                                public void onTick(long millisUntilFinished)
                                {
                                        toast.show();
                                }
                                public void onFinish()
                                {
                                        toast.cancel();
                                }
                       
                        }.start();

                        return true;
                }
        });
}       

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

        if(toast != null)
        {
                timer.cancel();
                toast.cancel();
        }
       
        Intent myIntent = new Intent(getActivity(), Frm_news_activity.class);
        myIntent.putExtra("oNewsItem", oNewsItems.get(position));
        startActivity(myIntent);
}
页: [1]
查看完整版本: [教学] Android getListView setOnItemLongClickListener longer duration display