android——标记一下,listView内部控件点击,自定义Toast

来源:互联网 发布:jsp时间轴数据库读取 编辑:程序博客网 时间:2024/06/06 00:56

近一个月在做一个小项目,现在总结一下遇到的一些问题,都是小问题只是标记一下,一些小细节。
1.Toast显示问题,开始测试手机是ivvi CK3-01 手机,吐司能正常显示,后来改用魅蓝3s手机问题就出现了,不显示吐司了,查了资料才发现不仅是魅蓝3s手机,之前有华为3c也有这问题,那么问题来了,不知道什么时候就会有什么手机的吐司不显示了,那么很多交互提示信息就不显示了,极度影响用户体验,所以就想到能不能自定义一个Toast,结果大部分是在Toast的基础上更改显示效果,这样根本没有解决问题,后来发现这篇文章http://www.cnblogs.com/andgoo/p/3157691.html
完美解决我的问题,但是有一点点,他没贴上一个style文件,下面直接贴上我改的代码:

package view;import com.ppl.sxgtqx.R;import android.app.Activity;import android.content.Context;import android.os.Handler;import android.util.Log;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.widget.LinearLayout;import android.widget.TextView;public class MyToast {    private static final int ANIMATION_DURATION = 1000;    private static final String TAG = "MyToast";    private int HIDE_DELAY = 5000;    private View mContainer;    private int gravity = Gravity.CENTER;    private TextView mTextView;    private Handler mHandler;    private AlphaAnimation mFadeInAnimation;    private AlphaAnimation mFadeOutAnimation;    public MyToast(Context context,int hIDE_DELAY, int gravity) {        super();        ViewGroup container = (ViewGroup) ((Activity) context)                .findViewById(android.R.id.content);        View v = ((Activity) context).getLayoutInflater().inflate(                R.layout.my_toast, container);        HIDE_DELAY = hIDE_DELAY;        this.gravity = gravity;        init(v);    }    private void init(View v) {        mContainer = v.findViewById(R.id.mbContainer);        mContainer.setVisibility(View.GONE);        mTextView = (TextView) v.findViewById(R.id.mbMessage);        mFadeInAnimation = new AlphaAnimation(0.0f, 1.0f);        mFadeOutAnimation = new AlphaAnimation(1.0f, 0.0f);        mFadeOutAnimation.setDuration(ANIMATION_DURATION);        mFadeOutAnimation                .setAnimationListener(new Animation.AnimationListener() {                    @Override                    public void onAnimationStart(Animation animation) {                    }                    @Override                    public void onAnimationEnd(Animation animation) {                        mContainer.setVisibility(View.GONE);                    }                    @Override                    public void onAnimationRepeat(Animation animation) {                    }                });        mHandler = new Handler();    }    public void show(String message) {        mContainer.setVisibility(View.VISIBLE);        Log.e(TAG, "set Visible");        ((LinearLayout) mContainer).setGravity(gravity                | Gravity.CENTER_VERTICAL);        Log.e(TAG, "set gravity");        mTextView.setText(message);        Log.e(TAG, "set setText");        mFadeInAnimation.setDuration(ANIMATION_DURATION);        mContainer.startAnimation(mFadeInAnimation);        mHandler.postDelayed(mHideRunnable, HIDE_DELAY);    }    private final Runnable mHideRunnable = new Runnable() {        @Override        public void run() {            mContainer.startAnimation(mFadeOutAnimation);        }    };}``

0 0