android.view.TextureView 无法转换为 android.widget.TextView |不能让它工作
android.view.TextureView cannot be cast to android.widget.TextView | Can't make it work
我正在 Android Studio 中构建一个应用程序,在该应用程序中您可以在 SQLite 数据库中搜索,编译时没有给我任何错误,但在虚拟设备中运行时却没有打不开,应用崩溃。
Logcat 说转换中有错误,但我能找到它:
java.lang.ClassCastException: android.view.TextureView cannot be cast to 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
。
我正在 Android Studio 中构建一个应用程序,在该应用程序中您可以在 SQLite 数据库中搜索,编译时没有给我任何错误,但在虚拟设备中运行时却没有打不开,应用崩溃。
Logcat 说转换中有错误,但我能找到它:
java.lang.ClassCastException: android.view.TextureView cannot be cast to 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
。