Java 致命预期:主要

Java 致命预期:主要,java,android,eclipse,Java,Android,Eclipse,我今天开始编写一个应用程序,我必须说我是一个完全的初学者。 我正在使用Eclipse编写一个Android应用程序。 我刚开始做最简单的事情,但是,看起来很糟糕。。。 我不明白为什么我不能这样做。 我试图将Android SDK中名为Edittext的文本框中写入的文本复制到字符串变量中。 此过程应在按下按钮时开始 这是我的密码: public class MainActivity extends Activity { String verb_2; String adjektiv_2; St

我今天开始编写一个应用程序,我必须说我是一个完全的初学者。 我正在使用Eclipse编写一个Android应用程序。 我刚开始做最简单的事情,但是,看起来很糟糕。。。 我不明白为什么我不能这样做。 我试图将Android SDK中名为Edittext的文本框中写入的文本复制到字符串变量中。 此过程应在按下按钮时开始

这是我的密码:

public class MainActivity extends Activity  {

String verb_2;
String adjektiv_2;
String ort_2;

@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;
}

public void Anleitung (View view)
{
    setContentView(R.layout.instruction);
}
public void multi_2 (View view)
{
    setContentView(R.layout.multiplayer_2_1);
}

public void multi_4 (View view)
{
    setContentView(R.layout.multiplayer_4_1);
}

public void exit (View view) 
{
    finish();
    System.exit(0);
}
public void instruction_back (View view)
{
    setContentView(R.layout.activity_main);
}


public void button1 (View view)
{
    EditText nomen_2_box = (EditText)findViewById(R.id.editText1);
    String nomen_2= nomen_2_box.getText().toString();
}
最后是坠机报告:

02-11 16:17:03.663: E/AndroidRuntime(988): FATAL EXCEPTION: main
02-11 16:17:03.663: E/AndroidRuntime(988): java.lang.IllegalStateException: Could not find a method multi_next_1(View) in the activity class com.kaltech.creasedstory.MainActivity for onClick handler on view class android.widget.Button with id 'button1'
02-11 16:17:03.663: E/AndroidRuntime(988):  at android.view.View$1.onClick(View.java:3578)
02-11 16:17:03.663: E/AndroidRuntime(988):  at android.view.View.performClick(View.java:4084)
02-11 16:17:03.663: E/AndroidRuntime(988):  at android.view.View$PerformClick.run(View.java:16966)
02-11 16:17:03.663: E/AndroidRuntime(988):  at android.os.Handler.handleCallback(Handler.java:615)
02-11 16:17:03.663: E/AndroidRuntime(988):  at android.os.Handler.dispatchMessage(Handler.java:92)
02-11 16:17:03.663: E/AndroidRuntime(988):  at android.os.Looper.loop(Looper.java:137)
02-11 16:17:03.663: E/AndroidRuntime(988):  at android.app.ActivityThread.main(ActivityThread.java:4745)
02-11 16:17:03.663: E/AndroidRuntime(988):  at java.lang.reflect.Method.invokeNative(Native Method)
02-11 16:17:03.663: E/AndroidRuntime(988):  at java.lang.reflect.Method.invoke(Method.java:511)
02-11 16:17:03.663: E/AndroidRuntime(988):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-11 16:17:03.663: E/AndroidRuntime(988):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-11 16:17:03.663: E/AndroidRuntime(988):  at dalvik.system.NativeStart.main(Native Method)
02-11 16:17:03.663: E/AndroidRuntime(988): Caused by: java.lang.NoSuchMethodException: multi_next_1 [class android.view.View]
02-11 16:17:03.663: E/AndroidRuntime(988):  at java.lang.Class.getConstructorOrMethod(Class.java:460)
02-11 16:17:03.663: E/AndroidRuntime(988):  at java.lang.Class.getMethod(Class.java:915)
02-11 16:17:03.663: E/AndroidRuntime(988):  at android.view.View$1.onClick(View.java:3571)
02-11 16:17:03.663: E/AndroidRuntime(988):  ... 11 more
有人能解释一下我做错了什么吗? 也许是为什么

我想是因为这个

公共无效按钮1视图{ 编辑文本命名框= EditTextfindViewByIdR.id.editText1; 字符串名称2= nomen_2_box.getText.toString;}

但我找不到任何解决方案:


谢谢大家

将方法名称从button1更改为multi_next_1

将方法名称从button1更改为multi_next_1

在xml中将onClick方法声明为按钮的属性时,会引发此异常:

<Button
    android:onClick="multi_next_1"/>
或者更改方法的名称以匹配xml中的声明,如下所示:

public void multi_next_1 (View view)
{
    EditText nomen_2_box = (EditText)findViewById(R.id.editText1);
    String nomen_2= nomen_2_box.getText().toString();
}

就我个人而言,我会用一个骆驼箱的名字,但我想这是风格的问题。如果有什么不清楚的地方,请告诉我。

当您在xml中将onClick方法声明为按钮的属性时,会引发此异常:

<Button
    android:onClick="multi_next_1"/>
或者更改方法的名称以匹配xml中的声明,如下所示:

public void multi_next_1 (View view)
{
    EditText nomen_2_box = (EditText)findViewById(R.id.editText1);
    String nomen_2= nomen_2_box.getText().toString();
}
就我个人而言,我会用一个骆驼箱的名字,但我想这是风格的问题。如果您有什么不清楚的地方,请告诉我。

您的问题就在这里

public void button1 (View view)
{
    EditText nomen_2_box = (EditText)findViewById(R.id.editText1);
    String nomen_2= nomen_2_box.getText().toString();
}
把它改成

public void multi_next_1 (View view)
    {
        EditText nomen_2_box = (EditText)findViewById(R.id.editText1);
        String nomen_2= nomen_2_box.getText().toString();
    }
你的问题就在这里

public void button1 (View view)
{
    EditText nomen_2_box = (EditText)findViewById(R.id.editText1);
    String nomen_2= nomen_2_box.getText().toString();
}
把它改成

public void multi_next_1 (View view)
    {
        EditText nomen_2_box = (EditText)findViewById(R.id.editText1);
        String nomen_2= nomen_2_box.getText().toString();
    }

如果你修改你的答案来解释编译器在寻找什么,而不仅仅是告诉他要写什么代码,你肯定会得到更多的选票。。从现在开始,我会记住这一点。谢谢你的提示。如果你修改你的答案来解释编译器在寻找什么,而不仅仅是告诉他要写什么代码,你肯定会得到支持。我同意你@John。。从现在开始,我会记住这一点。谢谢你的提示。+1用于描述遇到的具体问题和2种解决方法。非常欢迎!记得在你能休息的时候休息一下,保持头脑清醒;我可以请你点击绿色的小V来标记这个答案或任何你喜欢的答案吗?提前谢谢你@Takendarkk,谢谢,非常感谢:哦,对不起,结束了没问题。事实上,这样做可以将问题从活跃的问题中移除,从而保持这个精彩的网站干净整洁,并给我们双方带来一些声誉。正如你将在个人资料中看到的,你现在有8个代表2接受答案,5个代表5接受我的投票。快乐编码+1用于描述遇到的具体问题和2种解决方法。非常欢迎!记得在你能休息的时候休息一下,保持头脑清醒;我可以请你点击绿色的小V来标记这个答案或任何你喜欢的答案吗?提前谢谢你@Takendarkk,谢谢,非常感谢:哦,对不起,结束了没问题。事实上,这样做可以将问题从活跃的问题中移除,从而保持这个精彩的网站干净整洁,并给我们双方带来一些声誉。正如你将在个人资料中看到的,你现在有8个代表2接受答案,5个代表5接受我的投票。快乐编码;