2012-01-08 4 views
6

これは真のノブの質問になるので、慈悲を持ってください。 Androidのボタンクリックイベントでメッセージボックスを作成しようとしています。私はStackOverflowのいくつかの例を読んだことがありますが、私はその概念を把握していないようです。私はXMLレイアウトでonClickイベントを登録する必要がありますポストの一つに読んボタンClick Androidのイベント

<Button 
android:id="@+id/btnOK" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Display Message" 
android:onClick="onBtnClicked" /> 

次のように私のmain.xmlファイルでは、私は、ボタンのXMLを定義しています。それで、私は上記のXMLコードでやったと思ったことです。次に、私のJavaコードファイルで、私は次のコードを書いています:

package com.example.helloandroid; 

import android.app.Activity; 
import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 

public class HelloAndroid extends Activity 
{ 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);   
    } 

    public void onBtnClicked(View v) 
    { 
     if(v.getId() == R.id.btnOK) 
     { 
      MessageBox("Hello World"); 
     }  
    } 

    public void MessageBox(String message) 
    { 
     Toast.makeText(this, message, Toast.LENGTH_SHORT); 
    } 
} 

私にとって、これは意味があります。しかし、ボタンをクリックしてもメッセージボックスは表示されません。上のコードのインポートから、私はすでに成功していないいくつかのソリューションを試したことがわかります。私はおそらく聞き手がいませんか?私はXMLコードの定義が私のためにこれを作成すると思った?

答えて

6

変更

Toast.makeText(this, message, Toast.LENGTH_SHORT); 

Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); 

するには、show :-)事前に

おかげで()あなたが実際にあなただけのトーストを作成している他に、トーストを表示し確認します。

+0

ありがとうございました!これはうまくいった! –

1

Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); - トーストを表示せずに作成するだけで、show()メソッドを呼び出す必要があります。

+0

ありがとうございました! –

0

活動のonCreateメソッドでView.OnClickListenerを実装し、メソッドのonClick(ビューV)を実装

する必要があり、あなたは(命令setContentView後)ボタンを初期化します:

Button b = (Button) findViewById(R.id.btnOK); 
b.setOnClickListener(this); 

onClickの方法で:

public void onClick(View v) { 
    switch(v.getId()){ 
    case R.id.btnOK: 
     /* the instruccions of the button */ 
     break; 
    } 
} 
+0

フィードバックありがとうございます! –

1
Toast.makeText(this, message, Toast.LENGTH_SHORT); 

は、これは正しいです

Toast.makeText(this, message, Toast.LENGTH_SHORT).show();