Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么这条代码会成为祝酒词?没有听众_Java_Android_Android Toast - Fatal编程技术网

Java 为什么这条代码会成为祝酒词?没有听众

Java 为什么这条代码会成为祝酒词?没有听众,java,android,android-toast,Java,Android,Android Toast,我找到了一段制作祝酒词的代码。作为一个新的android开发者,我知道,我们有一个监听器来让按钮工作。但这里没有听众。那么,为什么这段代码会起作用呢 public class MainActivity extends Activity { private String mButtonMessageTemplate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIns

我找到了一段制作祝酒词的代码。作为一个新的android开发者,我知道,我们有一个监听器来让按钮工作。但这里没有听众。那么,为什么这段代码会起作用呢

 public class MainActivity extends Activity {
private String mButtonMessageTemplate;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mButtonMessageTemplate=getString(R.string.button_messege_template);
}
public void showButtonText(View clickedButton){
Button button=(Button) clickedButton;
CharSequence text=button.getText();
String message=String.format(mButtonMessageTemplate, text);
showToast(message);
}

}

另一个问题是

 <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hi_button_lebel" 
        android:onClick="showButtonText"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/bye_button_lebel"
        android:onClick="showButtonText" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/yo_button_lebel"
        android:onClick="showButtonText" />

android:onClick=“showButtonText”这是使用非onClick侦听器方法!怎样?? 请给我一个详细的答复。提前感谢。:)

那是你的听众。单击该视图时,将执行showButtonText方法

这是xml代码中的View.OnClickListener。当它被编译后,它将变成您熟悉的java代码

注意:在xml代码中放置onclickListener是一个坏习惯。你应该做的是:

button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener(){
    public void onclick(View v){
    //do what happens on click of button1
        showToast("button1 clicked.");

    }
});
那是你的听众。单击该视图时,将执行showButtonText方法

这是xml代码中的View.OnClickListener。当它被编译后,它将变成您熟悉的java代码

注意:在xml代码中放置onclickListener是一个坏习惯。你应该做的是:

button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener(){
    public void onclick(View v){
    //do what happens on click of button1
        showToast("button1 clicked.");

    }
});

Android允许您使用
Android:onClick
属性自动创建一个侦听器,在
活动中调用该方法


该方法必须接收类型为
View
的参数才能工作。

Android允许您使用
Android:onClick
属性自动创建一个侦听器,该侦听器在
活动
类中调用该方法


该方法必须接收类型为
View
的参数才能工作。

所有按钮都设置了onClick属性以调用该方法

showButtonText(View clickedButton)
此方法中有一条语句用于显示toast

showToast(message);

所以每次你点击任何一个按钮,它都会显示祝酒词

所有按钮都设置了onClick属性来调用该方法

showButtonText(View clickedButton)
showToast(message);
此方法中有一条语句用于显示toast

showToast(message);

所以每次你点击任何一个按钮,它都会显示祝酒词

这里是View.java中的代码。
showToast(message);
如果视图具有“onClick”属性,则视图的构造函数将创建并注册“OnClickListener”


下面是View.java中的代码。
如果视图具有“onClick”属性,则视图的构造函数将创建并注册“OnClickListener”


解释为什么你认为它是一种“坏习惯”可能会有帮助。稍后我会补充,但是很简单。很难找到!您的onclick逻辑位于两个不同的文件中!难以阅读。初学者很难知道。另外,我不认为有任何的AdvangTATE把它放在XML中。解释为什么你认为它是一个“坏习惯”可能会有帮助。稍后我会添加,但是一个非常简单的。很难找到!您的onclick逻辑位于两个不同的文件中!难以阅读。初学者很难知道。而且,我认为用xml表示也没有什么优势。