【问题标题】:IllegalStateException on Eclipse debugEclipse 调试中的 IllegalStateException
【发布时间】:2014-02-20 19:44:34
【问题描述】:

因为这个问题,我变得很生气。我在互联网上搜索了很多,但没有人遇到像我这样的问题。

我正在做的是尝试用我的手机和带有 ADT 的 Eclipse 调试一个简单的 android 应用程序,由 TextView 和一个 Button 组成。 该按钮应该在 TextView 中写入一些内容,但实际上我将“发送”功能留空。 每次我按下该按钮时,应用程序都会关闭,并且在 Eclipse 调试日志中出现“IllegalStateException”错误,与名为“ZygoteInit$MethodAndArgsCaller.run() 的函数有关,在线:745

这是我的代码:

主要活动.java

package com.android_test.examples;
import com.example.android_test.R;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
public class MainActivity extends Activity 
{
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
        {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }   
    protected void Send()
    {           

    }
}

和activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/txt"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

        <requestFocus />



    <Button
        android:id="@+id/btnok"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="24dp"
        android:onClick="Send()"
        android:text="Invia" />

    <EditText
        android:id="@+id/txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="104dp"
        android:layout_toLeftOf="@+id/btnok"
        android:ems="10" />

</RelativeLayout>

因为这个我真的很生气,请有人帮助我

【问题讨论】:

    标签: java android eclipse debugging


    【解决方案1】:

    更改protected void Send() {}

     public void Send(View view) {}
    

    并从 onClick 属性中删除括号:

    android:onClick="Send"
    

    【讨论】:

    • 非常感谢,我已经解决了这个问题,但可悲的是现在它在“TextView text=(TextView)findViewById(R.id.txt)”行上显示“ClassCastException”
    • 把RelativeLayout的id换成别的东西再运行一次
    【解决方案2】:

    改成

    public void Send(View v)
    {           
    
    }
    

    改变

    android:onClick="Send()"
    

    android:onClick="Send"
    

    http://developer.android.com/reference/android/view/View.html#attr_android:onClick

    android:onClick

    当视图被调用时在这个视图的上下文中调用的方法的名称 点击。此名称必须对应于一个公共方法,该方法采用 恰好是 View 类型的一个参数。例如,如果您指定 android:onClick="sayHello",你必须声明一个 public void 你的上下文(通常是你的 Activity)的 sayHello(View v) 方法。

    【讨论】:

    • 非常感谢,我已经解决了这个问题,但可悲的是,现在它在“TextView text=(TextView)findViewById(R.id.txt);
    猜你喜欢
    • 1970-01-01
    • 2011-03-03
    • 2010-10-05
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多