我正在Android Studio中构建一个应用程序,您可以在SQLite数据库中搜索该应用程序,编译时不会给我任何错误,但是当它在虚拟设备中运行时,它无法打开,应用程序崩溃。
Logcat说演员表中有错误,但我可以找到它:
java.lang.ClassCastException: android.view.TextureView 不能强制转换为 android.widget.TextView
请注意,我正在学习,所以肯定是我缺少一些东西或语法错误
代码如下:
class SearchViewHolder extends RecyclerView.ViewHolder{
public TextView name,address,email,phone;
public SearchViewHolder(View itemView){
super(itemView);
name = (TextView)itemView.findViewById(R.id.name);
address = (TextView)itemView.findViewById(R.id.address);
email = (TextView)itemView.findViewById(R.id.email);
phone = (TextView)itemView.findViewById(R.id.phone);
}
}
public class SearchAdapter extends RecyclerView.Adapter<SearchViewHolder>{
private Context context;
private List<Friend> friends;
public SearchAdapter(Context context, List<Friend> friends) {
this.context = context;
this.friends = friends;
}
@Override
public SearchViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View itemView = inflater.inflate(R.layout.layout_item,parent,false);
return new SearchViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull SearchViewHolder holder, int position) {
holder.name.setText(friends.get(position).getName());
holder.address.setText(friends.get(position).getAddress());
holder.email.setText(friends.get(position).getEmail());
holder.phone.setText(friends.get(position).getPhone());
}
@Override
public int getItemCount() {
return friends.size();
}
}
有什么建议吗?
检查你的layout_item
xml。在那里,您应该错误地将TextView
定义为至少一次TextureView
。