当我只运行java文件时,它会产生声音。 我现在想点击按钮来调用java文件并在eclipse中产生声音。
这是我的Java代码:
import org.jfugue.player.Player;
public class HelloWorld {
public static void main(String[] args) {
Player player = new Player();
player.play("C D E F G A B");
}
}
我的MainActivity.java
在日食中:
public class MainActivity extends ActionBarActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener((OnClickListener) this);
}
@Override
public void onClick(View arg0) {
// CODE HERE???
}
}
答案 0 :(得分:1)
是的,但主要取决于您的应用程序的功能或您希望实现/应用的特定设计。
我预见到两种选择,但由于我不知道有关该应用程序的更多细节,我不会提出任何建议,只需参考它们:
A)如果它是关于类中的方法,则首先必须创建该类的新实例,并从新创建的实例中调用该函数。
这就像是:
public void onClick(View v) {
BasicFunctions functions = new BasicFunctions();
functions.play();
}
在BasicFunctions.java
文件上,play
方法如下:
public void play() {
//functionality to play the file
}
B)您始终可以定义static方法以绕过创建额外实例:
public void onClick(View v) {
BasicFunctions.play();
}
在BasicFunctions.java
文件上,play
方法如下:
public static void play() {
//functionality to play the file
}
但它始终取决于你,并希望你想实现。
修改强>
好像你刚刚获得了JFugue网站的HelloWorld
示例,并尝试将其与您的Android应用程序结合使用。但是,我预见到很多问题,其中一个可能是你问题的根本原因。
首先,我不知道这个库,但对于纯Java,似乎HelloWorld
示例按预期工作(而不是一个小错误,我认为只存在于我的本地机器上),我能听到声音。
现在,根据图书馆的调整,你试图为Android操作系统做好准备,事情并不那么容易,所以我建议你去enter link description here,这是图书馆的Android移植项目。
该项目仍然没有提供任何使用示例(因此,如果解决您的问题,您可以只分叉并提供一个,如果您愿意,因为它对将来的引用(如您的)非常有帮助,但是其wiki pages似乎得到了很好的解释:
此外,作为上述项目的附注,请查看this回答。
答案 1 :(得分:0)
你在xml中执行此操作 - 将android:onClick方法设置为java类中的方法名称:
<Button android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me!"
android:onClick="myFancyMethod" />
您在java类中编写方法myFancyMethod
:
Button btn = (Button) findViewById(R.id.mybutton);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myFancyMethod(v);
}
});
// some more code
public void myFancyMethod(View v) {
// does something very interesting
}
请参阅此主题的解决方案:How exactly does the android:onClick XML attribute differ from setOnClickListener?
答案 2 :(得分:0)
在.xml文件中写下这个。
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me!"
android:onClick="justclick" />
然后在你的内部JAVA代码实现方法
public void justclick(View v) {
// does you're function
}