2011-12-05 4 views
1

これは私のメインのJavaファイルのコードです。どのように私は活動に接続するための別のボタンを作るだろう。私がこれを十分に表現していないかどうか教えてください。私はちょうどメインのJavaファイルに別のボタンを追加する必要があります。私はすでにマニフェストとそのクラスのアクティビティを持っています。メインJavaファイルに別のコードブロックを入れるだけです。ボタンのidはp40、xmlレイアウトの名前はp40.xml、クラスはp40.java、アクティビティはp40と呼ばれます。これは、現時点では私のコードです:メインの.javaファイルに別のアクティビティを追加するには

package com.duncan.hello.world; 

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

import com.duncan.hello.world.R; 

public class HelloWorldActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    Button aButton; 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    aButton = (Button) this.findViewById(R.id.button1); 

    aButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      Intent i = new Intent(HelloWorldActivity.this, OtherActivity.class); 
      startActivity(i); 
     }}); 
} 
} 
+0

別のボタンを追加するには、最初に追加したのと同じことをしてください。レイアウトにもう1つ追加してください。 main.javaファイルでそれを膨張させます。 –

+0

あなたはそれがどのコードブロックであるか教えていただけますか? –

答えて

2

あなたはあなたが別のbutton1layout/main.xmlにファイルを追加する必要が

// This code is copied from your code as is 
// to have a reference point as well as this is also 
// code for adding click listener to button which you 
// need to handle click and then do what you want. 
// In this case you are launching an Activity 
// Block of code you already have to use STARTS 
aButton = (Button) this.findViewById(R.id.button1); 

aButton.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     Intent i = new Intent(HelloWorldActivity.this, OtherActivity.class); 
     startActivity(i); 
    }}); 
// Block of code you already have to use ENDS 

// This code is added for newButton which looks similar to above block 
Button newButton 
newButton = (Button) this.findViewById(R.id.button2); 

newButton.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     Intent i = new Intent(HelloWorldActivity.this, AnOtherActivity.class); 
     startActivity(i); 
    }}); 

を行う必要があります。

+0

ありがとうございます。 –

0

チェックアウトAndroid Developers Blog: UI framework changes in Android 1.6

具体的に下部にある「簡単クリックリスナー」セクション。 「これのどれも必要ありませんアンドロイド1.6で、あなたがしなければならないのは、(メソッドが1つのビューの引数を持っている必要があります)クリックを処理するために、あなたの活動にパブリックメソッドを宣言している。:」

class MyActivity extends Activity { 
    public void myClickHandler(View target) { 
     // Do stuff 
    } } 

そして、あなたのXMLレイアウトからこのメソッドを参照してください: "

<Button android:onClick="myClickHandler" /> 

ちょうどコードを少しきれいにします。

+0

ありがとうございました。私はそれが簡単だろうとは考えていませんでした。 :)しかし、それが言う場所/ /私は何を置くべきなのか? –

+0

最後の文が冗談かどうかわかりません。しかし、それがあなたのアプリで達成しようとしているものに依存しない場合。 'myClickHandler'は押されているボタンに関連付けられているので、ユーザーがそのボタンを押したときに必要なコードを追加するだけです。理想的には、各ボタンのハンドラがあります。ハンドラを再利用して、どのViewがパラメータとして渡されたかを確認することもできますが、それを行う正当な理由がない限り、推奨しません。 – GrkEngineer

1

あなたはそれに2つの可能性があることを知っておく必要があります。 最初のものは、 "activity.xml"と "Activity.class"を分離する必要があります。XMLでは、宣言して設定しますボタンを使用して、実装することを割り当てます。 (with/out intent's ..)

2番目のonws、あなたはあなたの.javaのボタンを宣言する必要があります。

私はあなたが表示されます: activity.xml

<Button android:id="@+button/test" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="First Button"/> 
<Button android:id="@+button/test2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Second Button"/> 

///////////////////////////// //////////////////////////////////

Activity.java

..

Button first = (Button)findViewById(R.button.test); 
Button second = (Button)findViewById(R.button.test2); 

first.setOnclickListener(new OnClickListener() { 
    public void onClick(View v) { 
     //Do Something guy 
    }}); 

second.setOnclickListener(new OnClickListener() { 
    public void onClick(View v) { 
     //Do diferent something 
    }}); 

..

私はお手伝いしたいと思います。 よろしくお願いします。

+0

私は//何かを入れ、//何かする必要がありますか? –

+0

my fold rs。実際、実装を複製する理由はありません。 –

関連する問題