0

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???     
 }
}
4

3 に答える 3

1

はい。ただし、ほとんどの場合、アプリケーションの機能または達成/適用したい特定の設計に依存します。

私は 2 つのオプションを予見していますが、アプリケーションの詳細がわからないため、何も提案しません。それらを参照するだけです。

A) クラスのメソッドに関する場合は、まずクラスの新しいインスタンスを作成し、新しく作成したインスタンスからその関数を呼び出す必要があります。

それは次のようになります。

public void onClick(View v) {
    BasicFunctions functions = new BasicFunctions();
    functions.play();
} 

そして、BasicFunctions.javaファイルでは、次のplayようなメソッド:

public void play() {
   //functionality to play the file
}

B)余分なインスタンスの作成を回避するために、いつでも静的メソッドを定義できます。

public void onClick(View v) {
    BasicFunctions.play();
}

そして、BasicFunctions.javaファイルでは、次のplayようなメソッド:

public static void play() {
   //functionality to play the file
}

しかし、それは常にあなた次第であり、あなたが達成したいことです。


編集

JFugue のサイトの例を取得しHelloWorld、それを Android アプリケーションと組み合わせようとしたようです。しかし、私はそれに関する多くの問題を予見しており、そのうちの 1 つが問題の根本原因である可能性があります。

そもそも、私はこのライブラリを認識していませんでしたが、純粋な Java の場合、このHelloWorld例は期待どおりに機能しているように見えます (私のローカル マシンにのみ存在すると思われる小さなエラーではなく)。音。さて、あなたが Android OS に合わせようとしたライブラリの調整によると、物事はそれほど簡単ではないので、ライブラリの Android 移植プロジェクトである、ここにリンクの説明を入力することをお勧めします。

プロジェクトはまだ使用例を提供していません (したがって、問題を解決する場合は、必要に応じてフォークして提供することができます。これは、あなたのような将来の参照に非常に役立つためです)、そのwiki ページよく説明されているようです:

ここに画像の説明を入力

また、上記のプロジェクトの補足として、この回答をご覧ください。

于 2016-01-15T08:05:03.123 に答える
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
 }
于 2016-01-15T08:59:25.720 に答える
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" />

myFancyMethodメソッドを Java クラスに記述します。

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 
} 

このスレッドの解決策を参照してください: Android:onClick XML 属性は setOnClickListener とどのように異なりますか?

于 2016-01-15T08:42:48.710 に答える