导致java.lang.ClassCastException的Textview:android.widget.TextView

时间:2012-05-11 12:17:15

标签: android textview

我有三个textview并在它们上应用了clickevent,但当我点击它们中的任何一个时,它们会导致应用程序中出现Forceclose错误。我也尝试更改ids textviews然后清理项目并运行项目仍然没有删除错误。

我的XML代码是

一个textview

<LinearLayout
        android:id="@+id/LL_fb" 
        android:layout_width="180px"
        android:layout_height="27px"
        android:layout_above="@+id/txt_msg_regs"
        android:layout_alignLeft="@+id/LL_signup"
        android:layout_marginBottom="25dp"
        android:background="@drawable/facebook" >        
    <TextView
        android:id="@+id/btn_txt_fb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Connect with facebook"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="23dp"
        android:layout_marginTop="1dp"
        android:clickable="true"
        android:textColor="#FFFFFF" />
    </LinearLayout>

用于第二次textview

<LinearLayout 
        android:id="@+id/LL_signup"
        android:layout_width="180px"
        android:layout_height="29px"
        android:layout_above="@+id/textView1"
        android:layout_alignLeft="@+id/LL_login"
        android:background="@drawable/lmyic_signup">

    <TextView
        android:id="@+id/btn_txt_sinup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="signup with email"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="25dp"
        android:layout_marginTop="1dp"
        android:clickable="true"
        android:textColor="#FFFFFF" />

    </LinearLayout>

第三个

 <LinearLayout 
            android:id="@+id/LL_login"
            android:layout_width="180px"
                android:layout_height="29px"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="69dp"
                android:background="@drawable/lmyic_login">
        <TextView
            android:id="@+id/btn_txt_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Log in"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="70dp"
            android:layout_marginTop="1dp"
            android:textColor="#FFFFFF" 
            android:clickable="true"/> 
        </LinearLayout>

这是我的android代码。意图中的这个类名也是正确的,我验证了它们。

TextView img_login;
img_login = (TextView)findViewById(R.id.btn_txt_login);
 img_login.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                if(v.getId() == img_login.getId())
                {
                Intent i_lin = new Intent(LockmeifyoucanActivity.this,lmiyc_login.class);
                startActivity(i_lin);
                }                   
            }
        });

请告诉我这有什么问题。如果需要logcat,那就问我吧....

8 个答案:

答案 0 :(得分:1)

请发布完整的XMl,以便我们可以在其中查看btn_txt_login。

看起来它是按钮,因为“findViewById(R.id.btn_txt_login);”如果此“btn_txt_login”id不在xml中,则返回null。

答案 1 :(得分:1)

你在lmiyc_login activity.in lmiyc_login中的textview有一些问题,可能是:

TextView txtview;
txtview = (TextView)yourlayout.findViewById(R.id.txtviewid);

答案 2 :(得分:0)

findViewById(R.id.btn_txt_login);

这真的是TextView还是你的布局中还有一个Button?我想你正在尝试将Button转换为TextView

答案 3 :(得分:0)

错误的资源ID ......

img_login = (TextView)findViewById(R.id.btn_txt_login);

根据你的XML应该是

img_login = (TextView)findViewById(R.id.txt_login);

等。

答案 4 :(得分:0)

使用此

更改您的代码
TextView img_login;
 img_login = (TextView)findViewById(R.id.txt_login);
   img_login.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            if(v.getId().equals(img_login.getId()))
            {
            Intent i_lin = new Intent(LockmeifyoucanActivity.this,lmiyc_login.class);
            startActivity(i_lin);
            }                   
        }
    });

答案 5 :(得分:0)

要快速解决此错误,请在行设置一个断点:

View view = findViewById(R.id.btn_txt_login);

然后,在本地选项卡上查看哪个组件正在查看gen/R.java.

答案 6 :(得分:0)

这些是42-48

的行
 setContentView(R.layout.lmyic_login_page);                 
  txtBack = (TextView)findViewById(R.id.ImgViewTxtBack);          txtBack.setTypeface(null,Typeface.BOLD);
   iv_login = (ImageView)findViewById(R.id.Txtlogin);
   iv_login.setOnClickListener(this);
   iv_sign_up = (ImageView)findViewById(R.id.TxtSignup);

我认为问题在于iv_login =(ImageView)findViewById(R.id.Txtlogin); - Dheeresh Singh 1分钟前编辑 因为这是46行,它应该是textview,你在Imageview中投射它 - Dheeresh Singh刚刚编辑

答案 7 :(得分:0)

如果您有重复的资源ID,则会抛出ClasscastException。因此,请确保整个项目中没有重复的元素ID。