public class Review extends Activity {
private CustomAutoCompleteView autoComplete;
private ArrayAdapter<String> autoCompleteAdapter;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.review);
System.out.print("1");
autoCompleteAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line);
System.out.print("2");
autoCompleteAdapter.setNotifyOnChange(true); d
autoComplete = (CustomAutoCompleteView) findViewById(R.id.autoCompleteTextView1);/*Line which is unable to cast throws Exception*/
autoComplete.setHint("Restaurant Name");
autoComplete.setThreshold(3);
autoComplete.setAdapter(autoCompleteAdapter);
autoComplete.addTextChangedListener(textChecker);
final EditText et1=(EditText)findViewById(R.id.editText3);
}
public class CustomAutoCompleteView extends AutoCompleteTextView {
public CustomAutoCompleteView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public CustomAutoCompleteView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public CustomAutoCompleteView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
protected void performFiltering(final CharSequence text, final int keyCode) {
String filterText = "";
super.performFiltering(filterText, keyCode);
}
/**
* After a selection, capture the new value and append to the existing
* text
*/
@Override
protected void replaceText(final CharSequence text) {
super.replaceText(text);
}
}
我无法将AutoCompleteText类转换为CustomAutoCompleteView.Even,尽管类CustomAutoCompleteView包含匹配的构造函数。它会引发运行时异常。请帮助我。
答案 0 :(得分:0)
如果类B
扩展A
,则可以将类B
强制转换为类A
,因为可以保证B
的所有实例都是实例A
。但是,您无法保证A
的实例为B
,因此如果您尚未使用,A
到B
的演员可能会抛出ClassCastException
instanceof
验证A
的实例实际上是B
的实例。
关于构造的声明如果不适用,因为强制转换不使用构造函数,并且对象已经存在。