java如何使用Handler从其他类编辑TextView?
我试图编辑另一个类的文本视图
这是一个RecyclerView适配器。当我点击“删除”时,服务器被删除。此外,一些按钮和文本应该在UI上不可见
protected MainActivity context;
public ContactsAdapter(Context context){
this.context = (MainActivity) context;
}
public void onBindViewHolder(ContactsAdapter.ViewHolder viewHolder,final int position) {
...
final Handler mHandler = new Handler();
new Thread(new Runnable() {
@Override
public void run () {
mHandler.post(new Runnable() {
@Override
public void run () {
TextView commandrun = (TextView) context.findViewById(R.id.command_run);
commandrun.setVisibility(View.INVISIBLE);
}
});
}
}).start();
事实上我得到了java.lang.NullPointerException: Attempt to invoke virtual method '安卓.view.View com.minvercraft.minvercraftfree.MainActivity.findViewById(int)' on a null object reference
# 1 楼答案
你不需要训练员。您可以将接口传递给适配器,并在活动(您提到的其他类)中侦听接口,然后更改textView
然后将此接口传递给适配器
然后,当您单击适配器中的删除按钮时,必须调用
然后在传递接口的另一个类中,可以监听change方法并根据需要设置可见性
# 2 楼答案
很明显,你的观点是无效的。因此,如果在错误的位置调用findViewById,则必须在创建该视图的上下文中调用该方法
似乎视图不在您的上下文中(例如活动)