Suc*_*chi 1 android classcastexception textview android-view
我试图在点击它时将行设置为粗体.但是当我尝试将视图转换为TextView时,它给出了一个ClassCastException,如下所示 -
setListAdapter(adapter);
final ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView tv = (TextView)view;
tv.setTypeface(null, Typeface.BOLD);
}
});
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我该怎么办呢?
编辑:
我的适配器看起来像 -
public class CountryListAdapter extends ArrayAdapter<String> {
private final Activity context;
private final ArrayList<String> names;
public CountryListAdapter(Activity context, ArrayList<String> names) {
super(context, R.layout.rowlayout, names);
this.context = context;
this.names = names;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.rowlayout, null, true);
TextView textView = (TextView) rowView.findViewById(R.id.label);
textView.setText(names.get(position));
return rowView;
}
}
Run Code Online (Sandbox Code Playgroud)
您的适配器代码显示失败的主要原因:
根据你的适配器代码,view你所使用的是rowView,而不是textView.所以你也应该以这种方式访问它.这就是你得到的原因ClassCastException.
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
View rowView = view
TextView tv = (TextView) rowView.findViewById(R.id.label);
tv.setTypeface(null, Typeface.BOLD);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2081 次 |
| 最近记录: |