see*_*ess 5 java static android dialog
我几乎在所有班级都有这种方法.
//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);
}
});
}
Run Code Online (Sandbox Code Playgroud)
在辅助类中访问此静态方法
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);
}
Run Code Online (Sandbox Code Playgroud)
我得到了"静态成员被实例引用访问"的lint警告.我不知道怎么不在这里使用"这个".所以我有两个选择.
1)忽略棉绒警告
2)在我的帮助方法中删除"静态".
哪个更好?或者提出第三种解决方案.
Tod*_*ell 13
警告是说你showInfoDialog通过实例materialHelper而不是通过类MaterialHelper本身调用静态方法.这是"坏",因为它表明该方法实际上是一个依赖于实例中某个状态的实例方法.
解决方案是更换
materialHelper.showInfoDialog(...)
Run Code Online (Sandbox Code Playgroud)
你的代码中到处都是
MaterialHelper.showInfoDialog(...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8291 次 |
| 最近记录: |