web-dev-qa-db-ja.com

別のアクティビティを開くボタンを取得するにはどうすればよいですか?

アクティビティXMLファイルにボタンを追加しましたが、他のアクティビティを開くためにボタンを取得できません。これを行う方法を段階的に教えてもらえますか?

24
BionicDroid

A.他のアクティビティがマニフェストで宣言されていることを確認してください。

<activity
    Android:name="MyOtherActivity"
    Android:label="@string/app_name">
</activity>

すべてのアクティビティは、 意図フィルタ が割り当てられていない場合でも、マニフェストで宣言する必要があります。


B. MainActivityで次のようにします。

Button btn = (Button)findViewById(R.id.open_activity_button);    

btn.setOnClickListener(new View.OnClickListener() {         
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, MyOtherActivity.class));
        }
});
68
Gilad Haimov

OnClickListenerを使用する

ActivityインスタンスのonCreate()メソッド内で、最初にfindViewById()を使用してIDでButtonを見つけてから、ボタンにOnClickListenerを設定し、onClick()メソッドを実装して新しいActivityを開始する必要があります。

Button yourButton = (Button) findViewById(R.id.your_buttons_id);

yourButton.setOnClickListener(new OnClickListener(){
    public void onClick(View v){                        
        startActivity(new Intent(YourCurrentActivity.this, YourNewActivity.class));
    }
});

これはおそらくほとんどの開発者が好む方法です。ただし、一般的な代替手段があります。

XMLでonClickを使用する

または、Android:onClick="yourMethodName"を使用して、Activityでメソッド名を宣言します。これは、Buttonをクリックしたときに呼び出され、そのようにメソッドを宣言します。

public void yourMethodName(View v){
    startActivity(new Intent(YourCurrentActivity.this, YourNewActivity.class));
}

また、manifest.xmlで新しいActivityを宣言することを忘れないでください。これがお役に立てば幸いです。

参照;

16
Rudi Kershaw

次のようなxmlファイルでボタンを宣言した場合:

<Button
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="next activity"
        Android:onClick="goToActivity2"
        />

次に、これをJavaファイルに配置して、アクティビティを変更できます。

public void goToActivity2 (View view){
    Intent intent = new Intent (this, Main2Activity.class);
    startActivity(intent);
}

2番目のアクティビティは「Main2Activity」と呼ばれることに注意してください

8
daniftomas
Button T=(Button)findViewById(R.id.button_timer);
T.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent i=new Intent(getApplicationContext(),YOURACTIVITY.class);
        startActivity(i);
    }
});
2
harveyslash

次の手順を適用します。

  1. フォルダレイアウトに新しいレイアウトxmlを挿入する
  2. window2の名前を変更します
  3. 新しいボタンを追加して、次の行を追加します:Android:onClick = "window2"

mainactivity.Java

public void openWindow2(View v) {
        //call window2
        setContentView(R.layout.window2);           
    }
}
1
BREI

User9876226が答えたのと同じことをしました。唯一の違いは、onClickListenerを通常は使用しないことです。代わりに、xmlファイルに次のように記述します。Android:onClick="open"

openは関数であり、ボタンにバインドされています。次に、アクティビティクラスで関数open()を作成します。ボタンをクリックすると、この関数が呼び出されます:)また、この方法はリスナーを使用するよりも快適だと思います。

1
Matécsa Andrea

Xmlファイルにコードを記述します。

<Button Android:width="wrap_content"
        Android:height="wrap_content"
        Android:id="@+id/button"
        Android:text="Click"/>

Javaファイルにコードを書く

Button button=(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            startActivity(new Intent(getApplicationContext(),Secondclass.class));
           /* if you want to finish the first activity then just call
            finish(); */
        }
    });
1
Amol Gursali

public void onButtonClick(View view)

startActivity(new Intent(Current activity.this、IntentActivity.class));

0
Mani kandan

Android studioで次のコードを使用してボタンを作成し、既存のアクティビティを開きます。

Button StartButton = (Button) findViewById(R.id.YOUR BUTTONS ID GOES HERE);

StartButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(MainActivity.this, YOUR ACTIVITY'S ID GOES HERE.class));
    }
});
0
user9876226