作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请帮助我完成关于如何使用 viewholder 禁用编辑文本的噩梦,或者如何使用 if 和 else
语句禁用编辑文本的噩梦
我有一个回收站 View ,它列出了所有名称和他们的消息。 (信使就像)。不知何故,回收站 View 由名称、消息和一个小标签 TextView “客户关闭”组成,如果他们要单击由标签“客户关闭”组成的回收站 View ,他们将无法发送消息,因为它已经关闭。否则,所有包含标签“客户已关闭”的回收站 View 都将其编辑文本设置为 false。
public void bind(final Account account, final FirebaseChat chat) {
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Context context = itemView.getContext();
if (context instanceof NavigationActivity) {
final Activity activity = (Activity) context;
final Intent intent = new Intent(itemView.getContext(), myChat.class);
intent.putExtra(ChatActivity.KEY_NEW, false);
intent.putExtra(ChatActivity.KEY_ACCOUNT, account);
intent.putExtra(ChatActivity.KEY_CHAT, chat);
activity.startActivity(intent);
}
}
});
cName.setText(chat.getName());
cName.setTypeface(chat.getReadCount() < chat.getNumMessages() ? Typeface.DEFAULT_BOLD : Typeface.DEFAULT);
cTextDate.setText(getFormattedDate(chat.getLastTime()));
cTextMessage.setText(chat.getLastMessage());
cTextMessage.setTypeface(chat.getReadCount() < chat.getNumMessages() ? Typeface.DEFAULT_BOLD : Typeface.DEFAULT);
}
public void bind(final Account account, final FirebaseChatInfo customerInfo) {
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Context context = itemView.getContext();
if (context instanceof NavigationActivity) {
final Activity activity = (Activity) context;
final Intent intent = new Intent(itemView.getContext(), myChat.class);
intent.putExtra(ChatActivity.KEY_NEW, false);
intent.putExtra(ChatActivity.KEY_ACCOUNT, account);
intent.putExtra(ChatActivity.KEY_CHAT_INFO, customerInfo);
activity.startActivity(intent);
}
}
});
cName.setText(chatInfo.getName());
cName.setTypeface(chatInfo.isLastVisitorMessaged() ? Typeface.DEFAULT_BOLD : Typeface.DEFAULT);
cTextDate.setText(getFormattedDate(chatInfo.getLastTime()));
cTextMessage.setText(chatInfo.getLastMessage());
cMessage.setTypeface(chatInfo.isLastVisitorMessaged() ? Typeface.DEFAULT_BOLD : Typeface.DEFAULT);
this.shoptag = (TextView) itemView.findViewById(R.id.shoptag);
shoptag.setText(chatInfo.getShop_id());
this.customerclosed = (TextView) itemView.findViewById(R.id.customer_closed);
this.customerclosed.setVisibility(chatInfo.isClosed() ? View.GONE : View.VISIBLE);
this.message_editext = (EditText)itemView.findViewById(R.id.message_editext);
message_text.setEnabled(!chatInfo.isClosed());
if(customerInfo.isClosed())
{
message_text.setEnabled(false);
}else {
message_textt.setEnabled(true);
}
}
我遇到了这个错误
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setEnabled(boolean)' on a null object reference
最佳答案
你所要做的就是添加else标签
if(customerInfo.isClosed){
message_editext.setEnabled(false);
} else {
message_editext.setEnabled(true);
}
关于java - 在 View 持有者中使用if else禁用edittext android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35031470/
我是一名优秀的程序员,十分优秀!