zoukankan      html  css  js  c++  java
  • 通过findViewById()方法从layout中获取view并进行相应的转换时提示:"Cannot cast from View to AutoCompleteTextView"的解决办法!(转+自己错误)

    转:http://blog.csdn.net/zyz511919766/article/details/7453864

    代码:

     1 package zyz.example.autocompletetextview;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.widget.ArrayAdapter;
     6 
     7 public class AutoCompleteTextView extends Activity {
     8     /** Called when the activity is first created. */
     9     @Override
    10     public void onCreate(Bundle savedInstanceState) {
    11         super.onCreate(savedInstanceState);
    12         setContentView(R.layout.main);
    13          
    14         AutoCompleteTextView textView = (AutoCompleteTextView)findViewById(R.id.autocomplete_country);
    15         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES);
    16         auttextView.setAdapter(adapter);
    17     }
    18     

    第14行提示错误:“Cannot cast from View to AutoCompleteTextView”,从而也导致第16行发生错误。

    细查原因,未发现有拼写错误。

    上网搜索,有说可能是未导入相应的包,可明明已经按过组合键“ctrl+shift+O”导入了可能的包了。

    也有说根本不能这么转换,扯,搞android开发的都是在用这个方法啊!


    再细看,恍然,原来定义的类名跟调用的函数名一模一样,冲突了,怪不得呢!!!

    经修搞改类名后,错误排除!!!!!

    ok!!!!!!


    需要注意的是

    (1)改完类名后可能需要相应的改动“.java”文件的名称
    (2)改动完成后,再按一次组合键“ctrl+shift+O”,确保导入了所需的包。因为之前的名称冲突可能导致你并未导入正确的包。
    (3)记得保存一下修改结果!

    谨记!


    2014年10月14日11:34:09

    刚刚遇到了个类作者类似的问题,可能昨晚没睡好的缘故,今天新建一个类,在绑定控件的时候:

    ListView lv = (ListView)findViewById(R.id.a);
    

     报错:Cannot cast from View to ListView

    各种不理解,还以为我代码写错了,各种找原因,差点以为人生观都不一样了!! 后才看了作者文章才发现:

    public class ListView extends Activity {   //类名是什么???????????????????
    
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.listvview);
             
    		ListView lv = (ListView)findViewById(R.id.a);   //控件名又是什么????????????????????
    		ArrayList<String> listdata = new ArrayList<String>();
    		for (int i = 0; i < 400; i++) {
    			listdata.add("Item" + i);
    		}
    

     所以以后写程序真的不能犯迷糊,要不就会让你各种抓狂。  好了,不说了,泪奔去了~~o(>_<)o ~~

  • 相关阅读:
    2018年奇虎360春招笔试题--玫瑰花
    MaxPooling的作用
    网易笔试编程题:被3整除
    网易笔试编程题:牛牛找工作
    剑指offer 第十二天
    算法题:合并N个长度为L的有序数组为一个有序数组(JAVA实现)
    十分钟看懂神经网络反向传输算法
    十大经典排序算法最强总结(含JAVA代码实现)
    记服务器中招挖矿病毒排查过程(解决方案篇)
    spring 事件监听同时支持同步事件及异步事件
  • 原文地址:https://www.cnblogs.com/smilefortoday/p/4024085.html
Copyright © 2011-2022 走看看