0

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

我的 XML 代码是

对于一个文本视图

<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>

对于第二个文本视图

<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>

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

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,请向我索取....

4

8 回答 8

1

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

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

于 2012-05-11T12:24:17.043 回答
1

你在 lmiyc_login activity.in lmiyc_login corrent line number 46 中的 textview 有一些问题,这可能是:

TextView txtview;
txtview = (TextView)yourlayout.findViewById(R.id.txtviewid);
于 2012-05-11T12:50:29.070 回答
0

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

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

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

于 2012-05-11T12:46:47.983 回答
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 刚刚编辑

于 2012-05-11T12:59:19.740 回答
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);
            }                   
        }
    });
于 2012-05-11T12:34:17.863 回答
0

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

于 2015-03-26T17:07:35.127 回答
0
findViewById(R.id.btn_txt_login);

这真的是 TextView 还是您的布局中也有 Button?我认为您正在尝试将 Button 转换为 TextView

于 2012-05-11T12:20:24.147 回答
0

资源ID错误...

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

根据你的 XML 应该是

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

ETC..

于 2012-05-11T12:20:52.493 回答