我几乎所有的班级都有这种方法。
//listener - info
private void clickInfoListener(final ImageView iv, final int title, final int text){
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
materialHelper.showInfoDialog(MainActivity.this, iv, title, text);
}
});
}
在助手类中访问此静态方法
public static void showInfoDialog(Context context, final ImageView iv, final int title, final int text){
iv.setImageResource(R.drawable.ic_info_touched);
//
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(text);
builder.setPositiveButton(R.string.gotIt, null);
builder.show();
//
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
iv.setImageResource(R.drawable.ic_info_primary);
}
}, 25);
}
我收到了“实例引用正在访问静态成员”的警告。我不知道如何在这里不使用“ this”。所以我有两个选择。
1)忽略皮棉警告
2)在我的助手方法中删除“ static”。
哪个更好?或提出第三种解决方案。
警告是说您正在showInfoDialog
通过实例materialHelper
而不是通过类MaterialHelper
本身调用静态方法。这是“不好的”,因为它表明该方法实际上是一个依赖于实例中某些状态的实例方法。
解决的办法是更换
materialHelper.showInfoDialog(...)
在代码中的任何地方
MaterialHelper.showInfoDialog(...)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句