0

私は Android 開発に非常に慣れていないので、非常に単純なアプリを作成したときに困惑し、「残念ながら、MyApp が停止しました」という非常に説明のつかないエラーが発生しました。構文エラーなし。このやや役に立たないメッセージだけです。これが私がしたことです。

  1. 新しいアプリ プロジェクトを作成しました (Android 4.1)
  2. ボタンを作成しました - button1
  3. Java メソッド - DoStuff() - をアクティビティ クラスに作成しました (以下を参照)。
  4. アクティビティ ダイアログ xml のボタンに DoStuff への呼び出しを追加しました (以下を参照)。
  5. プロジェクトを Android アプリケーションとして実行する
  6. ボタンを押す
  7. エラーが表示される

メソッド:

public void DoStuff(){
    TextView tv = (TextView)this.findViewById(R.id.textView1);
    tv.setText("Hello dude");
}

ボタン xml:

 <Button
        android:id="@+id/button1"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignRight="@+id/textView1"
        android:layout_marginTop="82dp"
        android:text="Button"
        android:onClick="DoStuff" />

あなたが私を助けてくれることを願っています。

4

2 に答える 2

0

私は他の場所で解決策を見つけました。DoStuff には引数として View が必要なようです。したがって、次のようになります。

public void DoStuff(View v){
    TextView tv = (TextView)this.findViewById(R.id.textView1);
    tv.setText("Hello dude");
}

なぜ、わかりませんが、うまくいきます:-)

于 2012-08-27T08:22:45.503 に答える
0

Android では、さまざまなタイプのイベントとアクションに対して、それぞれのリスナーが指定された関数シグネチャを持っています。たとえば、ボタンのアクション リスナーの場合、関数には次のシグネチャが必要です。

public void functionName(View view);

レイアウト ファイルでは、Button の onClick プロパティに対して、関数名のみを指定する必要があります。

View引数は、そのアクションを起動したビューオブジェクトを示します(たとえば、あなたの場合のボタン)

于 2012-08-27T13:18:08.193 に答える